home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-03-04 | 94.1 KB | 3,709 lines |
- !
- ! Absolute value test vectors:
- !
- 2A ALL 1 0 OK 1
- 2A ALL -1 0 OK 1
- 2A ALL Ed1 0 OK Ed1
- 2A ALL -Ed1 0 OK Ed1
- 2A ALL 0i1 0 OK 0i1
- 2A ALL -0i1 0 OK 0i1
- 2A ALL Hm1 0 OK Hm1
- 2A ALL -Hm1 0 OK Hm1
- 2A ALL Hd1 0 OK Hd1
- 2A ALL -Hd1 0 OK Hd1
- 2A ALL H 0 OK H
- 2A ALL -H 0 OK H
- 2A ALL 0 0 OK 0
- 2A ALL -0 0 OK 0
- ! NaNs -- FPTEST checks that results
- ! are NaNs with no exceptions.
- 2A ALL Q 0 OK Q
- 2A ALL -Q 0 OK Q
- 2A ALL S 0 OK S
- 2A ALL -S 0 OK S
- ! First some easy integer cases.
- 2+ ALL 1 1 OK 2
- 2+ ALL 1 2 OK 3
- 2+ ALL 2 1 OK 3
- 2+ ALL 2 2 OK 4
- 2+ =0> 2 -2 OK 0
- 2+ < 2 -2 OK -0
- 2+ =0> 5 -5 OK 0
- 2+ < 5 -5 OK -0
- 2+ ALL 1 7 OK 8
- 2+ ALL 5 -1 OK 4
- 2+ ALL 2 -5 OK -3
- 2+ ALL 5 -0 OK 5
- 2+ ALL 5 +0 OK 5
- ! Infinity vs Infinity.
- 2+ ALL H H OK H ok - affine sum
- 2+ ALL -H -H OK -H
- 2+ ALL -H H i Q different signs
- 2+ ALL H -H i Q
- ! Infinity vs huge.
- 2+ ALL H Hm1 OK H
- 2+ ALL H -Hm1 OK H
- 2+ ALL -H Hm1 OK -H
- 2+ ALL -H -Hm1 OK -H
- 2+ ALL Hm1 H OK H
- 2+ ALL Hm1 -H OK -H
- 2+ ALL -Hm1 H OK H
- 2+ ALL -Hm1 -H OK -H
- ! Infinity vs 0.
- 2+ ALL H 0 OK H
- 2+ ALL H -0 OK H
- 2+ ALL -H 0 OK -H
- 2+ ALL -H -0 OK -H
- 2+ ALL 0 H OK H
- 2+ ALL -0 H OK H
- 2+ ALL 0 -H OK -H
- 2+ ALL -0 -H OK -H
- ! Infinity vs denormalized.
- 2+ ALL H Ed1 OK H
- 2+ ALL -H Ed1 OK -H
- 2+ ALL H -Ed1 OK H
- 2+ ALL -H -Ed1 OK -H
- 2+ ALL 0i3 H OK H
- 2+ ALL 0i3 -H OK -H
- 2+ ALL -0i3 H OK H
- 2+ ALL -0i3 -H OK -H
- ! Zero vs finite -- watch that sign of 0
- ! is meaningless.
- 2+ ALL 0 Hm1 OK Hm1
- 2+ ALL -0 Hm1 OK Hm1
- 2+ ALL -Hm1 0 OK -Hm1
- 2+ ALL -Hm1 -0 OK -Hm1
- 2+ ALL 1 -0 OK 1
- 2+ ALL -1 -0 OK -1
- 2+ ALL 0 1 OK 1
- 2+ ALL -0 -1 OK -1
- ! Zero vs denormalized -- underflows.
- 2+ ALL 0 Ed1 OK Ed1
- 2+ ALL -0 Ed1 OK Ed1
- 2+ ALL 0 -Ed1 OK -Ed1
- 2+ ALL -0 -Ed1 OK -Ed1
- 2+ ALL 0i3 0 OK 0i3
- 2+ ALL 0i3 -0 OK 0i3
- 2+ ALL -0i3 0 OK -0i3
- 2+ ALL -0i3 -0 OK -0i3
- ! Zero vs tiny -- just in case.
- 2+ ALL -0 -E OK -E
- 2+ ALL E 0 OK E
- 2+ ALL 0 -E OK -E
- 2+ ALL -E 0 OK -E
- ! Zero vs Zero -- watch signs and
- ! rounding modes.
- 2+ =0> 0 -0 OK 0
- 2+ =0> -0 0 OK 0
- 2+ < 0 -0 OK -0
- 2+ < -0 0 OK -0
- 2+ ALL 0 0 OK 0
- 2+ ALL -0 -0 OK -0
- ! Double a number -- may overflow so
- ! watch rounding mode.
- 2+ => Hm1 Hm1 xo H
- 2+ 0< Hm1 Hm1 xo Hd1
- 2+ =< -Hm1 -Hm1 xo -H
- 2+ 0> -Hm1 -Hm1 xo -Hd1
- 2+ ALL Hm1d2 Hm1d2 OK Hd2
- 2+ ALL -Hm1d2 -Hm1d2 OK -Hd2
- 2+ => Hd2 Hd2 xo H
- 2+ 0< Hd2 Hd2 xo Hd1
- 2+ =< -Hd2 -Hd2 xo -H
- 2+ 0> -Hd2 -Hd2 xo -Hd1
- ! Double an innocent number.
- 2+ ALL 1 1 OK 2
- 2+ ALL 3 3 OK 6
- 2+ ALL E E OK Ep1
- 2+ ALL Hm2 Hm2 OK Hm1
- ! Double a tiny number -- may underflow.
- 2+ ALL Ed1 Ed1 OK Ep1d2
- 2+ ALL -Ed1 -Ed1 OK -Ep1d2
- 2+ ALL 0i4 0i4 OK 0i8
- 2+ ALL -0i4 -0i4 OK -0i8
- 2+ ALL 0i1 0i1 OK 0i2
- 2+ ALL -0i1 -0i1 OK -0i2
- ! Cancellation to 0 -- to plus 0.
- 2+ =0> Hm1 -Hm1 OK 0
- 2+ =0> -Hm1d2 Hm1d2 OK 0
- 2+ =0> 1 -1 OK 0
- 2+ =0> -3 3 OK 0
- 2+ =0> E -E OK 0
- 2+ =0> -E E OK 0
- 2+ =0> Ed4 -Ed4 OK 0
- 2+ =0> -Ed1 Ed1 OK 0 no underflow
- 2+ =0> 0i1 -0i1 OK 0
- 2+ =0> -0i1 0i1 OK 0
- 2+ =0> Hd1 -Hd1 OK 0
- ! Cancellation to 0 -- to minus 0.
- 2+ < Hm1 -Hm1 OK -0
- 2+ < -Hm1d2 Hm1d2 OK -0
- 2+ < 1 -1 OK -0
- 2+ < -3 3 OK -0
- 2+ < E -E OK -0
- 2+ < -E E OK -0
- 2+ < Ed4 -Ed4 OK -0
- 2+ < -Ed1 Ed1 OK -0 no underflow
- 2+ < 0i1 -0i1 OK -0
- 2+ < -0i1 0i1 OK -0
- 2+ < Hd1 -Hd1 OK -0
- ! Cancel forcing normalization of LSB
- ! (no rounding errors). Difference is in
- ! last place of larger number.
- ! Medium numbers...
- 2+ ALL 1i1 -1 OK 1u1
- 2+ ALL -1i1 1 OK -1u1
- 2+ ALL 1i1 -1i2 OK -1u1
- 2+ ALL -1i1 1i2 OK 1u1
- 2+ ALL 2 -2i1 OK -2u1
- 2+ ALL -2 2i1 OK 2u1
- 2+ ALL 2i4 -2i3 OK 2u1
- 2+ ALL -2i4 2i3 OK -2u1
- 2+ ALL 4d1 -4d2 OK 3u1
- 2+ ALL -4d1 4d2 OK -3u1
- 2+ ALL 2d4 -2d3 OK -1u1
- 2+ ALL -2d4 2d3 OK 1u1
- ! Huge numbers...
- 2+ ALL Hm1i1 -Hm1 OK Hm1u1
- 2+ ALL -Hm1i1 Hm1 OK -Hm1u1
- 2+ ALL Hm1i1 -Hm1i2 OK -Hm1u1
- 2+ ALL -Hm1i1 Hm1i2 OK Hm1u1
- 2+ ALL Hm2 -Hm2i1 OK -Hm2u1
- 2+ ALL -Hm2 Hm2i1 OK Hm2u1
- 2+ ALL Hm2i4 -Hm2i3 OK Hm2u1
- 2+ ALL -Hm2i4 Hm2i3 OK -Hm2u1
- 2+ ALL Hm2d1 -Hm2d2 OK Hm3u1
- 2+ ALL -Hm2d1 Hm2d2 OK -Hm3u1
- 2+ ALL -Hd2 Hd1 OK Hd1u1
- 2+ ALL Hd2 -Hd1 OK -Hd1u1
- ! Tiny numbers...
- 2+ ALL -Ei1 E OK -Eu1
- 2+ ALL Ei1 -E OK Eu1
- 2+ ALL -Ed1 E OK Eu1
- 2+ ALL Ed1 -E OK -Eu1
- 2+ ALL Ei1 -Ei2 OK -Eu1
- 2+ ALL -Ei1 Ei2 OK Eu1
- 2+ ALL Ed1 -Ed2 OK Eu1
- 2+ ALL -Ed1 Ed2 OK -Eu1
- 2+ ALL Ed3 -Ed2 OK -Eu1
- 2+ ALL -Ed3 Ed2 OK Eu1
- 2+ ALL 0i2 -0i1 OK Eu1
- 2+ ALL -0i2 0i1 OK -Eu1
- 2+ ALL 0i3 -0i2 OK Eu1
- 2+ ALL -0i3 0i2 OK -Eu1
- ! Normalize from round bit -- set up
- ! tests so that operands have
- ! exponents differing by 1 unit.
- ! Medium numbers...
- 2+ ALL 2 -2d1 OK 1u1
- 2+ ALL -2 2d1 OK -1u1
- 2+ ALL -2d1 2 OK 1u1
- 2+ ALL 2d1 -2 OK -1u1
- 2+ ALL 4i1 -4d1 OK 3u3
- 2+ ALL -4i1 4d1 OK -3u3
- 2+ ALL 4d1 -4i2 OK -3u5
- 2+ ALL -4d1 4i2 OK 3u5
- 2+ ALL 2i1 -1i1 OK 1i1
- 2+ ALL -2i1 1i1 OK -1i1
- 2+ ALL 2i2 -1i1 OK 1i3
- 2+ ALL -2i2 1i1 OK -1i3
- 2+ ALL 2i2 -1i3 OK 1i1
- 2+ ALL -2i2 1i3 OK -1i1
- ! Huge numbers...
- 2+ ALL Hm2 -Hm2d1 OK Hm3u1
- 2+ ALL -Hm2 Hm2d1 OK -Hm3u1
- 2+ ALL -Hm1d1 Hm1 OK Hm2u1
- 2+ ALL Hm1d1 -Hm1 OK -Hm2u1
- 2+ ALL Hm4i1 -Hm4d1 OK Hm5u3
- 2+ ALL -Hm4i1 Hm4d1 OK -Hm5u3
- 2+ ALL Hm2d1 -Hm2i2 OK -Hm3u5
- 2+ ALL -Hm2d1 Hm2i2 OK Hm3u5
- 2+ ALL Hm2i1 -Hm1i1 OK -Hm2i1
- 2+ ALL -Hm2i1 Hm1i1 OK Hm2i1
- 2+ ALL Hm1i2 -Hm2i1 OK Hm2i3
- 2+ ALL -Hm1i2 Hm2i1 OK -Hm2i3
- 2+ ALL Hm2i2 -Hm3i3 OK Hm3i1
- 2+ ALL -Hm2i2 Hm3i3 OK -Hm3i1
- ! Tiny numbers...
- 2+ ALL Ep1 -Ep1d1 OK Eu1
- 2+ ALL -Ep1 Ep1d1 OK -Eu1
- 2+ ALL -Ep1d1 Ep1 OK Eu1
- 2+ ALL Ep1d1 -Ep1 OK -Eu1
- 2+ ALL Ep1i1 -Ep1d1 OK Eu3
- 2+ ALL -Ep1i1 Ep1d1 OK -Eu3
- 2+ ALL Ep2 -Ep2d1 OK Eu2
- 2+ ALL -Ep2 Ep2d1 OK -Eu2
- 2+ ALL -Ep2d1 Ep2 OK Eu2
- 2+ ALL Ep2d1 -Ep2 OK -Eu2
- 2+ ALL Ep2i1 -Ep2d1 OK Eu6
- 2+ ALL -Ep2i1 Ep2d1 OK -Eu6
- 2+ ALL Ep1d1 -Ep1i2 OK -Eu5
- 2+ ALL -Ep1d1 Ep1i2 OK Eu5
- 2+ ALL Ep1d1 -Ep1i4 OK -Eu9
- 2+ ALL -Ep1d1 Ep1i4 OK Eu9
- 2+ ALL Ep1i1 -Ei1 OK Ei1
- 2+ ALL -Ep1i1 Ei1 OK -Ei1
- 2+ ALL Ep1i2 -Ei1 OK Ei3
- 2+ ALL -Ep1i2 Ei1 OK -Ei3
- 2+ ALL Ep2i2 -Ep1i3 OK Ep1i1
- 2+ ALL -Ep2i2 Ep1i3 OK -Ep1i1
- ! Add magnitude:
- ! cases where one operand is off in sticky --
- ! rounding perhaps to an overflow.
- ! Huge vs medium.
- 2+ =0< Hm1 1 x Hm1
- 2+ > Hm1 1 x Hm1i1
- 2+ =0> -Hm1 -1 x -Hm1
- 2+ < -Hm1 -1 x -Hm1i1
- 2+ =0< Hm1d1 1 x Hm1d1
- 2+ > Hm1d1 1 x Hm1
- 2+ =0> -Hm1d1 -1 x -Hm1d1
- 2+ < -Hm1d1 -1 x -Hm1
- 2+ =0< Hd1 1 x Hd1
- 2+ > Hd1 1 xo H signal overflow
- 2+ =0> -Hd1 -1 x -Hd1
- 2+ < -Hd1 -1 xo -H
- 2+ =0< Hd2 1 x Hd2
- 2+ > Hd2 1 x Hd1
- 2+ =0> -Hd2 -1 x -Hd2
- 2+ < -Hd2 -1 x -Hd1
- ! Huge vs denormal.
- 2+ =0< 0i1 Hm1 x Hm1
- 2+ > 0i1 Hm1 x Hm1i1
- 2+ =0> -0i1 -Hm1 x -Hm1
- 2+ < -0i1 -Hm1 x -Hm1i1
- 2+ =0< 0i1 Hm1d1 x Hm1d1
- 2+ > 0i1 Hm1d1 x Hm1
- 2+ =0> -0i1 -Hm1d1 x -Hm1d1
- 2+ < -0i1 -Hm1d1 x -Hm1
- 2+ =0< 0i1 Hd1 x Hd1
- 2+ > 0i1 Hd1 xo H signal overflow
- 2+ =0> -0i1 -Hd1 x -Hd1
- 2+ < -0i1 -Hd1 xo -H
- 2+ =0< 0i1 Hd2 x Hd2
- 2+ > 0i1 Hd2 x Hd1
- 2+ =0> -0i1 -Hd2 x -Hd2
- 2+ < -0i1 -Hd2 x -Hd1
- ! Medium vs denormal.
- 2+ =0< 0i1 1 x 1
- 2+ > 0i1 1 x 1i1
- 2+ =0> -0i1 -1 x -1
- 2+ < -0i1 -1 x -1i1
- 2+ =0< 0i1 1d1 x 1d1
- 2+ > 0i1 1d1 x 1
- 2+ =0> -0i1 -1d1 x -1d1
- 2+ < -0i1 -1d1 x -1
- 2+ =0< 0i1 2d1 x 2d1
- 2+ > 0i1 2d1 x 2
- 2+ =0> -0i1 -2d1 x -2d1
- 2+ < -0i1 -2d1 x -2
- 2+ =0< 0i1 2d2 x 2d2
- 2+ > 0i1 2d2 x 2d1
- 2+ =0> -0i1 -2d2 x -2d2
- 2+ < -0i1 -2d2 x -2d1
- !
- ! Magnitude subtract when an operand is
- ! in the sticky bit. The interesting cases
- ! will arise when directed rounding
- ! forces a nonzero cancellation.
- ! Huge and medium.
- 2+ => Hm1 -1 x Hm1
- 2+ 0< Hm1 -1 x Hm1d1
- 2+ =< -Hm1 1 x -Hm1
- 2+ 0> -Hm1 1 x -Hm1d1
- 2+ => Hm1d1 -1 x Hm1d1
- 2+ 0< Hm1d1 -1 x Hm1d2
- 2+ =< -Hm1d1 1 x -Hm1d1
- 2+ 0> -Hm1d1 1 x -Hm1d2
- 2+ => Hd1 -1 x Hd1
- 2+ 0< Hd1 -1 x Hd2
- 2+ =< -Hd1 1 x -Hd1
- 2+ 0> -Hd1 1 x -Hd2
- 2+ => Hd2 -1 x Hd2
- 2+ 0< Hd2 -1 x Hd3
- 2+ =< -Hd2 1 x -Hd2
- 2+ 0> -Hd2 1 x -Hd3
- ! Huge and tiny.
- 2+ => Hd1 -0i1 x Hd1
- 2+ 0< Hd1 -0i1 x Hd2
- 2+ =< -Hd1 0i1 x -Hd1
- 2+ 0> -Hd1 0i1 x -Hd2
- 2+ => -0i3 Hm1 x Hm1
- 2+ 0< -0i3 Hm1 x Hm1d1
- 2+ =< 0i3 -Hm1 x -Hm1
- 2+ 0> 0i3 -Hm1 x -Hm1d1
- ! Medium and tiny.
- 2+ => 1d1 -0i1 x 1d1
- 2+ 0< 1d1 -0i1 x 1d2
- 2+ =< -2d1 0i1 x -2d1
- 2+ 0> -2d1 0i1 x -2d2
- 2+ => -0i3 3 x 3
- 2+ 0< -0i3 3 x 3d1
- 2+ =< 0i3 -5 x -5
- 2+ 0> 0i3 -5 x -5d1
- !
- ! Add magnitude with difference in LSB
- ! so, except for denorms, round bit
- ! is crucial. Half-way cases arise.
- ! Medium cases.
- 2+ =0< 1i1 1 x 2
- 2+ > 1i1 1 x 2i1
- 2+ =0> -1i1 -1 x -2
- 2+ < -1i1 -1 x -2i1
- 2+ =0> -2 -2i1 x -4
- 2+ < -2 -2i1 x -4i1
- 2+ =0< 2 2i1 x 4
- 2+ > 2 2i1 x 4i1
- 2+ => 1 1i3 x 2i2
- 2+ 0< 1 1i3 x 2i1
- 2+ =< -1 -1i3 x -2i2
- 2+ 0> -1 -1i3 x -2i1
- 2+ =< -2i1 -2i2 x -4i2
- 2+ 0> -2i1 -2i2 x -4i1
- 2+ => 2i1 2i2 x 4i2
- 2+ 0< 2i1 2i2 x 4i1
- ! Huge cases.
- 2+ => Hd2 Hd1 xo H
- 2+ 0< Hd2 Hd1 xo Hd1
- 2+ =< -Hd2 -Hd1 xo -H
- 2+ 0> -Hd2 -Hd1 xo -Hd1
- 2+ => Hm1d1 Hm1 xo H
- 2+ 0< Hm1d1 Hm1 x Hd1
- 2+ =< -Hm1d1 -Hm1 xo -H
- 2+ 0> -Hm1d1 -Hm1 x -Hd1
- 2+ => Hm1i1 Hm1 xo H
- 2+ 0< Hm1i1 Hm1 xo Hd1
- 2+ =< -Hm1i1 -Hm1 xo -H
- 2+ 0> -Hm1i1 -Hm1 xo -Hd1
- 2+ =0< Hm2i1 Hm2 x Hm1
- 2+ > Hm2i1 Hm2 x Hm1i1
- 2+ =0> -Hm2i1 -Hm2 x -Hm1
- 2+ < -Hm2i1 -Hm2 x -Hm1i1
- 2+ =0< Hm1d2 Hm1d1 x Hd2
- 2+ > Hm1d2 Hm1d1 x Hd1
- 2+ =0> -Hm1d2 -Hm1d1 x -Hd2
- 2+ < -Hm1d2 -Hm1d1 x -Hd1
- ! Check rounding.
- 2+ > 2 1u1 x 2i1
- 2+ =0< 2 1u1 x 2
- 2+ => 2i1 1u1 x 2i2
- 2+ 0< 2i1 1u1 x 2i1
- 2+ => 4d1 1u1 x 4
- 2+ 0< 4d1 1u1 x 4d1
- 2+ > 4d1 1u1d1 x 4
- 2+ 0=< 4d1 1u1d1 x 4d1
- 2+ =< -4d1 -1u1 x -4
- 2+ 0> -4d1 -1u1 x -4d1
- 2+ < -4d1 -1u1d1 x -4
- 2+ 0=> -4d1 -1u1d1 x -4d1
- !NAN operands.
- 2+ ALL Q 0 OK Q
- 2+ ALL Q -0 OK Q
- 2+ ALL 0 Q OK Q
- 2+ ALL -0 Q OK Q
- 2+ ALL Q 1 OK Q
- 2+ ALL Q -1 OK Q
- 2+ ALL 1 Q OK Q
- 2+ ALL -1 Q OK Q
- 2+ ALL Ed1 Q OK Q
- 2+ ALL -Ed1 Q OK Q
- 2+ ALL Q Ed1 OK Q
- 2+ ALL Q -Ed1 OK Q
- 2+ ALL Q 0i1 OK Q
- 2+ ALL Q -0i1 OK Q
- 2+ ALL 0i1 Q OK Q
- 2+ ALL -0i1 Q OK Q
- 2+ ALL Q Hd1 OK Q
- 2+ ALL Q -Hd1 OK Q
- 2+ ALL Hd1 Q OK Q
- 2+ ALL -Hd1 Q OK Q
- 2+ ALL Q H OK Q
- 2+ ALL Q -H OK Q
- 2+ ALL H Q OK Q
- 2+ ALL -H Q OK Q
- 2+ ALL Q Q OK Q
- 2+ ALL S 0 i Q
- 2+ ALL S -0 i Q
- 2+ ALL 0 S i Q
- 2+ ALL -0 S i Q
- 2+ ALL S 1 i Q
- 2+ ALL S -1 i Q
- 2+ ALL 1 S i Q
- 2+ ALL -1 S i Q
- 2+ ALL Ed1 S i Q
- 2+ ALL -Ed1 S i Q
- 2+ ALL S Ed1 i Q
- 2+ ALL S -Ed1 i Q
- 2+ ALL S 0i1 i Q
- 2+ ALL S -0i1 i Q
- 2+ ALL 0i1 S i Q
- 2+ ALL -0i1 S i Q
- 2+ ALL S Hd1 i Q
- 2+ ALL S -Hd1 i Q
- 2+ ALL Hd1 S i Q
- 2+ ALL -Hd1 S i Q
- 2+ ALL S H i Q
- 2+ ALL S -H i Q
- 2+ ALL H S i Q
- 2+ ALL -H S i Q
- 2+ ALL Q S i Q
- 2+ ALL S Q i Q
- 2+ ALL S S i Q
- ! First some easy integer cases.
- 2C ALL 1 1 OK =
- 2C ALL 1 2 OK <
- 2C ALL 2 1 OK >
- 2C ALL 2 2 OK =
- 2C ALL 2 -2 OK >
- 2C ALL 5 -5 OK >
- 2C ALL 1 7 OK <
- 2C ALL 5 -1 OK >
- 2C ALL 2 -5 OK >
- 2C ALL 5 -0 OK >
- 2C ALL 5 +0 OK >
- ! Infinity vs Infinity.
- 2C ALL H H OK = always equal
- 2C ALL -H -H OK = always equal
- 2C ALL H -H OK >
- 2C ALL -H H OK <
- ! Infinity vs huge.
- 2C ALL H Hm1 OK >
- 2C ALL H -Hm1 OK >
- 2C ALL -H Hm1 OK <
- 2C ALL -H -Hm1 OK <
- 2C ALL H Hd1 OK >
- 2C ALL H -Hd1 OK >
- 2C ALL -H Hd1 OK <
- 2C ALL -H -Hd1 OK <
- 2C ALL Hm1 H OK <
- 2C ALL Hm1 -H OK >
- 2C ALL -Hm1 H OK <
- 2C ALL -Hm1 -H OK >
- ! Infinity vs 0.
- 2C ALL H 0 OK >
- 2C ALL H -0 OK >
- 2C ALL -H 0 OK <
- 2C ALL -H -0 OK <
- 2C ALL 0 H OK <
- 2C ALL -0 H OK <
- 2C ALL 0 -H OK >
- 2C ALL -0 -H OK >
- ! Infinity vs denormalized.
- 2C ALL H Ed1 OK >
- 2C ALL -H Ed1 OK <
- 2C ALL H -Ed1 OK >
- 2C ALL -H -Ed1 OK <
- 2C ALL H 0i1 OK >
- 2C ALL -H 0i1 OK <
- 2C ALL H -0i1 OK >
- 2C ALL -H -0i1 OK <
- 2C ALL Ed1 H OK <
- 2C ALL Ed1 -H OK >
- 2C ALL -Ed1 H OK <
- 2C ALL -Ed1 -H OK >
- ! Zero vs finite -- watch that sign
- ! of 0 is meaningless.
- 2C ALL 0 Hm1 OK <
- 2C ALL -0 Hm1 OK <
- 2C ALL -Hm1 0 OK <
- 2C ALL -Hm1 -0 OK <
- 2C ALL 1 -0 OK >
- 2C ALL -1 -0 OK <
- 2C ALL 0 1 OK <
- 2C ALL -0 -1 OK >
- ! Zero vs denormalized.
- 2C ALL 0 Ed1 OK <
- 2C ALL -0 Ed1 OK <
- 2C ALL 0 -Ed1 OK >
- 2C ALL -0 -Ed1 OK >
- 2C ALL 0 0i1 OK <
- 2C ALL -0 0i1 OK <
- 2C ALL 0 -0i1 OK >
- 2C ALL -0 -0i1 OK >
- 2C ALL Ed1 0 OK >
- 2C ALL Ed1 -0 OK >
- 2C ALL -Ed1 0 OK <
- 2C ALL -Ed1 -0 OK <
- ! Zero vs tiny -- just in case.
- 2C ALL -0 -E OK >
- 2C ALL E 0 OK >
- 2C ALL 0 -E OK >
- 2C ALL -E 0 OK <
- ! Zero vs Zero -- watch signs
- ! and rounding modes.
- 2C ALL 0 -0 OK =
- 2C ALL -0 0 OK =
- 2C ALL 0 -0 OK =
- 2C ALL -0 0 OK =
- ! Big cancellations.
- 2C ALL Hm1 Hm1 OK =
- 2C ALL Hm1 Hm1 OK =
- 2C ALL -Hm1 -Hm1 OK =
- 2C ALL -Hm1 -Hm1 OK =
- 2C ALL Hm1d2 Hm1d2 OK =
- 2C ALL -Hm1d2 -Hm1d2 OK =
- 2C ALL Hd1 Hd1 OK =
- 2C ALL Hd1 Hd1 OK =
- 2C ALL -Hd1 -Hd1 OK =
- 2C ALL -Hd1 -Hd1 OK =
- ! Medium cancellations.
- 2C ALL 1 1 OK =
- 2C ALL 1m1 1m1 OK =
- 2C ALL 3 3 OK =
- 2C ALL E E OK =
- 2C ALL Hm2 Hm2 OK =
- ! Tiny cancellations -- might
- ! have underflowed.
- 2C ALL Ed1 Ed1 OK =
- 2C ALL -Ed1 -Ed1 OK =
- 2C ALL 0i4 0i4 OK =
- 2C ALL -0i4 -0i4 OK =
- 2C ALL 0i1 0i1 OK =
- 2C ALL -0i1 -0i1 OK =
- ! Doublings.
- 2C ALL Hm1 -Hm1 OK >
- 2C ALL -Hm1d2 Hm1d2 OK <
- 2C ALL 1 -1 OK >
- 2C ALL -3 3 OK <
- 2C ALL E -E OK >
- 2C ALL -E E OK <
- 2C ALL Ed4 -Ed4 OK >
- 2C ALL -Ed1 Ed1 OK <
- 2C ALL 0i1 -0i1 OK >
- 2C ALL -0i1 0i1 OK <
- ! Cancellation with diff in LSB
- ! Difference is in last place of
- ! larger number.
- ! Medium numbers...
- 2C ALL 1i1 1 OK >
- 2C ALL -1i1 -1 OK <
- 2C ALL 1i1 1i2 OK <
- 2C ALL -1i1 -1i2 OK >
- 2C ALL 2 2i1 OK <
- 2C ALL -2 -2i1 OK >
- 2C ALL 2i4 2i3 OK >
- 2C ALL -2i4 -2i3 OK <
- 2C ALL 4d1 4d2 OK >
- 2C ALL -4d1 -4d2 OK <
- 2C ALL 2d4 2d3 OK <
- 2C ALL -2d4 -2d3 OK >
- ! Huge numbers...
- 2C ALL Hm1i1 Hm1 OK >
- 2C ALL -Hm1i1 -Hm1 OK <
- 2C ALL Hm1i1 Hm1i2 OK <
- 2C ALL -Hm1i1 -Hm1i2 OK >
- 2C ALL Hm2 Hm2i1 OK <
- 2C ALL -Hm2 -Hm2i1 OK >
- 2C ALL Hm2i4 Hm2i3 OK >
- 2C ALL -Hm2i4 -Hm2i3 OK <
- 2C ALL Hm2d1 Hm2d2 OK >
- 2C ALL -Hm2d1 -Hm2d2 OK <
- 2C ALL -Hd2 -Hd1 OK >
- 2C ALL Hd2 Hd1 OK <
- ! Tiny numbers...
- 2C ALL -Ei1 -E OK <
- 2C ALL Ei1 E OK >
- 2C ALL -Ed1 -E OK >
- 2C ALL Ed1 E OK <
- 2C ALL Ei1 Ei2 OK <
- 2C ALL -Ei1 -Ei2 OK >
- 2C ALL Ed1 Ed2 OK >
- 2C ALL -Ed1 -Ed2 OK <
- 2C ALL Ed3 Ed2 OK <
- 2C ALL -Ed3 -Ed2 OK >
- 2C ALL 0i2 0i1 OK >
- 2C ALL -0i2 -0i1 OK <
- 2C ALL 0i3 0i2 OK >
- 2C ALL -0i3 -0i2 OK <
- ! Normalize from round bit -- set up
- ! tests so that operands have
- ! exponents differing by 1 unit.
- ! Medium numbers...
- 2C ALL 2 2d1 OK >
- 2C ALL -2 -2d1 OK <
- 2C ALL -2d1 -2 OK >
- 2C ALL 2d1 2 OK <
- 2C ALL 4i1 4d1 OK >
- 2C ALL -4i1 -4d1 OK <
- 2C ALL 4d1 4i2 OK <
- 2C ALL -4d1 -4i2 OK >
- 2C ALL 2i1 1i1 OK >
- 2C ALL -2i1 -1i1 OK <
- 2C ALL 2i2 1i1 OK >
- 2C ALL -2i2 -1i1 OK <
- 2C ALL 2i2 1i3 OK >
- 2C ALL -2i2 -1i3 OK <
- ! Huge numbers...
- 2C ALL Hm2 Hm2d1 OK >
- 2C ALL -Hm2 -Hm2d1 OK <
- 2C ALL -Hm1d1 -Hm1 OK >
- 2C ALL Hm1d1 Hm1 OK <
- 2C ALL Hm4i1 Hm4d1 OK >
- 2C ALL -Hm4i1 -Hm4d1 OK <
- 2C ALL Hm2d1 Hm2i2 OK <
- 2C ALL -Hm2d1 -Hm2i2 OK >
- 2C ALL Hm2i1 Hm1i1 OK <
- 2C ALL -Hm2i1 -Hm1i1 OK >
- 2C ALL Hm1i2 Hm2i1 OK >
- 2C ALL -Hm1i2 -Hm2i1 OK <
- 2C ALL Hm2i2 Hm3i3 OK >
- 2C ALL -Hm2i2 -Hm3i3 OK <
- ! Tiny numbers...
- 2C ALL Ep1 Ep1d1 OK >
- 2C ALL -Ep1 -Ep1d1 OK <
- 2C ALL -Ep1d1 -Ep1 OK >
- 2C ALL Ep1d1 Ep1 OK <
- 2C ALL Ep1i1 Ep1d1 OK >
- 2C ALL -Ep1i1 -Ep1d1 OK <
- 2C ALL Ep2 Ep2d1 OK >
- 2C ALL -Ep2 -Ep2d1 OK <
- 2C ALL -Ep2d1 -Ep2 OK >
- 2C ALL Ep2d1 Ep2 OK <
- 2C ALL Ep2i1 Ep2d1 OK >
- 2C ALL -Ep2i1 -Ep2d1 OK <
- 2C ALL Ep1d1 Ep1i2 OK <
- 2C ALL -Ep1d1 -Ep1i2 OK >
- 2C ALL Ep1d1 Ep1i4 OK <
- 2C ALL -Ep1d1 -Ep1i4 OK >
- 2C ALL Ep1i1 Ei1 OK >
- 2C ALL -Ep1i1 -Ei1 OK <
- 2C ALL Ep1i2 Ei1 OK >
- 2C ALL -Ep1i2 -Ei1 OK <
- 2C ALL Ep2i2 Ep1i3 OK >
- 2C ALL -Ep2i2 -Ep1i3 OK <
- !
- ! Add magnitude cases where one operand
- ! is off in sticky -- rounding
- ! perhaps to an overflow.
- ! Huge vs medium
- 2C ALL Hm1 1 OK >
- 2C ALL -Hm1 -1 OK <
- 2C ALL Hm1d1 -1 OK >
- 2C ALL Hm1d1 1 OK >
- 2C ALL -Hm1d1 1 OK <
- 2C ALL -Hm1d1 -1 OK <
- 2C ALL Hd1 1 OK >
- 2C ALL Hd1 -1 OK >
- 2C ALL -Hd1 1 OK <
- 2C ALL -Hd1 -1 OK <
- 2C ALL Hd2 -1 OK >
- 2C ALL Hd2 1 OK >
- 2C ALL -Hd2 1 OK <
- 2C ALL -Hd2 -1 OK <
- ! Huge vs tiny.
- 2C ALL 0i1 Hm1 OK <
- 2C ALL 0i1 -Hm1 OK >
- 2C ALL -0i1 Hm1 OK <
- 2C ALL -0i1 -Hm1 OK >
- 2C ALL 0i1 Hm1d1 OK <
- 2C ALL 0i1 -Hm1d1 OK >
- 2C ALL -0i1 Hm1d1 OK <
- 2C ALL -0i1 -Hm1d1 OK >
- 2C ALL 0i1 Hd1 OK <
- 2C ALL 0i1 -Hd1 OK >
- 2C ALL -0i1 Hd1 OK <
- 2C ALL -0i1 -Hd1 OK >
- 2C ALL 0i1 Hd2 OK <
- 2C ALL 0i1 -Hd2 OK >
- 2C ALL -0i1 Hd2 OK <
- 2C ALL -0i1 -Hd2 OK >
- ! Medium vs tiny.
- 2C ALL 0i1 1 OK <
- 2C ALL 0i1 -1 OK >
- 2C ALL -0i1 1 OK <
- 2C ALL -0i1 -1 OK >
- 2C ALL 0i1 1d1 OK <
- 2C ALL 0i1 -1d1 OK >
- 2C ALL -0i1 1d1 OK <
- 2C ALL -0i1 -1d1 OK >
- 2C ALL 0i1 2d1 OK <
- 2C ALL 0i1 -2d1 OK >
- 2C ALL -0i1 2d1 OK <
- 2C ALL -0i1 -2d1 OK >
- 2C ALL 0i1 2d2 OK <
- 2C ALL 0i1 -2d2 OK >
- 2C ALL -0i1 2d2 OK <
- 2C ALL -0i1 -2d2 OK >
- !
- ! Magnitude subtract when an operand
- ! is in the sticky bit.
- ! The interesting cases will arise
- ! when directed rounding
- ! forces a nonzero cancellation.
- ! Huge and medium.
- 2C ALL Hm1 1 OK >
- 2C ALL Hm1 -1 OK >
- 2C ALL -Hm1 1 OK <
- 2C ALL -Hm1 -1 OK <
- 2C ALL Hm1d1 1 OK >
- 2C ALL Hm1d1 -1 OK >
- 2C ALL -Hm1d1 1 OK <
- 2C ALL -Hm1d1 -1 OK <
- 2C ALL Hd1 1 OK >
- 2C ALL Hd1 -1 OK >
- 2C ALL -Hd1 1 OK <
- 2C ALL -Hd1 -1 OK <
- 2C ALL Hd2 1 OK >
- 2C ALL Hd2 -1 OK >
- 2C ALL -Hd2 1 OK <
- 2C ALL -Hd2 -1 OK <
- ! Huge and tiny.
- 2C ALL Hd1 0i1 OK >
- 2C ALL Hd1 -0i1 OK >
- 2C ALL -Hd1 0i1 OK <
- 2C ALL -Hd1 -0i1 OK <
- 2C ALL 0i3 Hm1 OK <
- 2C ALL -0i3 Hm1 OK <
- 2C ALL 0i3 -Hm1 OK >
- 2C ALL -0i3 -Hm1 OK >
- ! Medium and tiny.
- 2C ALL 1d1 0i1 OK >
- 2C ALL 1d1 -0i1 OK >
- 2C ALL 2d1 0i1 OK >
- 2C ALL -2d1 0i1 OK <
- 2C ALL 0i3 3 OK <
- 2C ALL -0i3 3 OK <
- 2C ALL 0i3 5 OK <
- 2C ALL 0i3 -5 OK >
- !
- ! Add magnitude with difference in
- ! LSB so, except for denorms,
- ! round bit is crucial.
- ! Half-way cases arise.
- ! Medium cases.
- 2C ALL 1i1 1 OK >
- 2C ALL 1i1 -1 OK >
- 2C ALL -1i1 1 OK <
- 2C ALL -1i1 -1 OK <
- 2C ALL -2 2i1 OK <
- 2C ALL -2 -2i1 OK >
- 2C ALL 2 -2i1 OK >
- 2C ALL 2 2i1 OK <
- 2C ALL 1 1i3 OK <
- 2C ALL 1 -1i3 OK >
- 2C ALL -1 1i3 OK <
- 2C ALL -1 -1i3 OK >
- 2C ALL -2i1 -2i2 OK >
- 2C ALL -2i1 2i2 OK <
- 2C ALL 2i1 -2i2 OK >
- 2C ALL 2i1 2i2 OK <
- ! Huge cases.
- 2C ALL Hd2 Hd1 OK <
- 2C ALL Hd2 -Hd1 OK >
- 2C ALL -Hd2 Hd1 OK <
- 2C ALL -Hd2 -Hd1 OK >
- 2C ALL Hm1d1 Hm1 OK <
- 2C ALL Hm1d1 -Hm1 OK >
- 2C ALL -Hm1d1 Hm1 OK <
- 2C ALL -Hm1d1 -Hm1 OK >
- 2C ALL Hm1i1 Hm1 OK >
- 2C ALL Hm1i1 -Hm1 OK >
- 2C ALL -Hm1i1 Hm1 OK <
- 2C ALL -Hm1i1 -Hm1 OK <
- 2C ALL Hm2i1 Hm2 OK >
- 2C ALL Hm2i1 -Hm2 OK >
- 2C ALL -Hm2i1 Hm2 OK <
- 2C ALL -Hm2i1 -Hm2 OK <
- 2C ALL Hm1d2 Hm1d1 OK <
- 2C ALL Hm1d2 -Hm1d1 OK >
- 2C ALL -Hm1d2 Hm1d1 OK <
- 2C ALL -Hm1d2 -Hm1d1 OK >
- ! NaN operands.
- 2C ALL Q 0 OK ?
- 2C ALL Q -0 OK ?
- 2C ALL 0 Q OK ?
- 2C ALL -0 Q OK ?
- 2C ALL Q 1 OK ?
- 2C ALL Q -1 OK ?
- 2C ALL 1 Q OK ?
- 2C ALL -1 Q OK ?
- 2C ALL Ed1 Q OK ?
- 2C ALL -Ed1 Q OK ?
- 2C ALL Q Ed1 OK ?
- 2C ALL Q -Ed1 OK ?
- 2C ALL Q 0i1 OK ?
- 2C ALL Q -0i1 OK ?
- 2C ALL 0i1 Q OK ?
- 2C ALL -0i1 Q OK ?
- 2C ALL Q Hd1 OK ?
- 2C ALL Q -Hd1 OK ?
- 2C ALL Hd1 Q OK ?
- 2C ALL -Hd1 Q OK ?
- 2C ALL Q H OK ?
- 2C ALL Q -H OK ?
- 2C ALL H Q OK ?
- 2C ALL -H Q OK ?
- 2C ALL Q Q OK ?
- 2C ALL S 0 i ?
- 2C ALL S -0 i ?
- 2C ALL 0 S i ?
- 2C ALL -0 S i ?
- 2C ALL S 1 i ?
- 2C ALL S -1 i ?
- 2C ALL 1 S i ?
- 2C ALL -1 S i ?
- 2C ALL Ed1 S i ?
- 2C ALL -Ed1 S i ?
- 2C ALL S Ed1 i ?
- 2C ALL S -Ed1 i ?
- 2C ALL S 0i1 i ?
- 2C ALL S -0i1 i ?
- 2C ALL 0i1 S i ?
- 2C ALL -0i1 S i ?
- 2C ALL S Hd1 i ?
- 2C ALL S -Hd1 i ?
- 2C ALL Hd1 S i ?
- 2C ALL -Hd1 S i ?
- 2C ALL S H i ?
- 2C ALL S -H i ?
- 2C ALL H S i ?
- 2C ALL -H S i ?
- 2C ALL Q S i ?
- 2C ALL S Q i ?
- 2C ALL S S i ?
- !
- ! CopySign test vectors:
- !
- 2@ ALL 1 1 OK 1
- 2@ ALL 1 -1 OK -1
- 2@ ALL -1 1 OK 1
- 2@ ALL -1 -1 OK -1
- 2@ ALL 1 0i1 OK 1
- 2@ ALL 1 -0i1 OK -1
- 2@ ALL -1 0i1 OK 1
- 2@ ALL -1 -0i1 OK -1
- 2@ ALL 1 Hd1 OK 1
- 2@ ALL 1 -Hd1 OK -1
- 2@ ALL -1 Hd1 OK 1
- 2@ ALL -1 -Hd1 OK -1
- 2@ ALL 1 H OK 1
- 2@ ALL 1 -H OK -1
- 2@ ALL -1 H OK 1
- 2@ ALL -1 -H OK -1
- 2@ ALL 1 0 OK 1
- 2@ ALL 1 -0 OK -1
- 2@ ALL -1 0 OK 1
- 2@ ALL -1 -0 OK -1
- 2@ ALL 0i1 1 OK 0i1
- 2@ ALL 0i1 -1 OK -0i1
- 2@ ALL -0i1 1 OK 0i1
- 2@ ALL -0i1 -1 OK -0i1
- 2@ ALL 0i1 H OK 0i1
- 2@ ALL 0i1 -H OK -0i1
- 2@ ALL -0i1 H OK 0i1
- 2@ ALL -0i1 -H OK -0i1
- 2@ ALL 0i1 0 OK 0i1
- 2@ ALL 0i1 -0 OK -0i1
- 2@ ALL -0i1 0 OK 0i1
- 2@ ALL -0i1 -0 OK -0i1
- 2@ ALL Hd1 E OK Hd1
- 2@ ALL Hd1 -E OK -Hd1
- 2@ ALL -Hd1 E OK Hd1
- 2@ ALL -Hd1 -E OK -Hd1
- 2@ ALL Hd1 H OK Hd1
- 2@ ALL Hd1 -H OK -Hd1
- 2@ ALL -Hd1 H OK Hd1
- 2@ ALL -Hd1 -H OK -Hd1
- 2@ ALL Hd1 0 OK Hd1
- 2@ ALL Hd1 -0 OK -Hd1
- 2@ ALL -Hd1 0 OK Hd1
- 2@ ALL -Hd1 -0 OK -Hd1
- 2@ ALL H 1 OK H
- 2@ ALL H -1 OK -H
- 2@ ALL -H 1 OK H
- 2@ ALL -H -1 OK -H
- 2@ ALL H Ed1 OK H
- 2@ ALL H -Ed1 OK -H
- 2@ ALL -H Ed1 OK H
- 2@ ALL -H -Ed1 OK -H
- 2@ ALL H 0 OK H
- 2@ ALL H -0 OK -H
- 2@ ALL -H 0 OK H
- 2@ ALL -H -0 OK -H
- 2@ ALL H H OK H
- 2@ ALL H -H OK -H
- 2@ ALL -H H OK H
- 2@ ALL -H -H OK -H
- ! NaNs -- FPTEST checks that NaNs
- ! are returned and with no exceptions.
- 2@ ALL Q 1 OK Q
- 2@ ALL Q -1 OK -Q
- 2@ ALL -Q 1 OK Q
- 2@ ALL -Q -1 OK -Q
- 2@ ALL Q 0i1 OK Q
- 2@ ALL Q -0i1 OK -Q
- 2@ ALL -Q 0i1 OK Q
- 2@ ALL -Q -0i1 OK -Q
- 2@ ALL Q H OK Q
- 2@ ALL Q -H OK -Q
- 2@ ALL -Q H OK Q
- 2@ ALL -Q -H OK -Q
- 2@ ALL Q 0 OK Q
- 2@ ALL Q -0 OK -Q
- 2@ ALL -Q 0 OK Q
- 2@ ALL -Q -0 OK -Q
- 2@ ALL S 1 OK S
- 2@ ALL S -1 OK -S
- 2@ ALL -S 1 OK S
- 2@ ALL -S -1 OK -S
- 2@ ALL S 0i1 OK S
- 2@ ALL S -0i1 OK -S
- 2@ ALL -S 0i1 OK S
- 2@ ALL -S -0i1 OK -S
- 2@ ALL S H OK S
- 2@ ALL S -H OK -S
- 2@ ALL -S H OK S
- 2@ ALL -S -H OK -S
- 2@ ALL S 0 OK S
- 2@ ALL S -0 OK -S
- 2@ ALL -S 0 OK S
- 2@ ALL -S -0 OK -S
- 2@ ALL 1 Q OK 1
- 2@ ALL 1 -Q OK -1
- 2@ ALL 1 S OK 1
- 2@ ALL 1 -S OK -1
- 2@ ALL -1 Q OK 1
- 2@ ALL -1 -Q OK -1
- 2@ ALL -1 S OK 1
- 2@ ALL -1 -S OK -1
- 2@ ALL H Q OK H
- 2@ ALL H -Q OK -H
- 2@ ALL H S OK H
- 2@ ALL H -S OK -H
- 2@ ALL -H Q OK H
- 2@ ALL -H -Q OK -H
- 2@ ALL -H S OK H
- 2@ ALL -H -S OK -H
- 2@ ALL S Q OK S
- 2@ ALL S -Q OK -S
- 2@ ALL S S OK S
- 2@ ALL S -S OK -S
- 2@ ALL -S Q OK S
- 2@ ALL -S -Q OK -S
- 2@ ALL -S S OK S
- 2@ ALL -S -S OK -S
- 2@ ALL Q Q OK Q
- 2@ ALL Q -Q OK -Q
- 2@ ALL Q S OK Q
- 2@ ALL Q -S OK -Q
- 2@ ALL -Q Q OK Q
- 2@ ALL -Q -Q OK -Q
- 2@ ALL -Q S OK Q
- 2@ ALL -Q -S OK -Q
- ! First the consistency checks.
- 2/ ALL 1 1 OK 1
- 2/ ALL 2 1 OK 2
- 2/ ALL 9 3 OK 3
- 2/ ALL 5 5 OK 1
- 2/ ALL 8 2 OK 4
- ! Check out sign manipulation.
- 2/ ALL -1 1 OK -1
- 2/ ALL -2 1 OK -2
- 2/ ALL 2 -1 OK -2
- 2/ ALL -8 2 OK -4
- 2/ ALL 3 -3 OK -1
- 2/ ALL -7 7 OK -1
- 2/ ALL -1 -1 OK 1
- 2/ ALL -2 -1 OK 2
- 2/ ALL -6 -3 OK 2
- 2/ ALL -9 -3 OK 3
- ! Some zero tests, round mode
- ! is irrelevant.
- 2/ ALL 0 0 i Q
- 2/ ALL -0 0 i -Q
- 2/ ALL 0 -0 i -Q
- 2/ ALL -0 -0 i Q
- ! Infinity tests, round mode
- ! irrelevant.
- 2/ ALL H H i Q
- 2/ ALL -H H i -Q
- 2/ ALL H -H i -Q
- 2/ ALL -H -H i Q
- ! Inf / 0 --> Inf with no problem.
- 2/ ALL H 0 OK H
- 2/ ALL -H 0 OK -H
- 2/ ALL H -0 OK -H
- 2/ ALL -H -0 OK H
- ! 0 / Inf --> 0 with no problem.
- 2/ ALL 0 H OK 0
- 2/ ALL -0 H OK -0
- 2/ ALL 0 -H OK -0
- 2/ ALL -0 -H OK 0
- ! Inf / small_integer -> Inf.
- 2/ ALL H 1 OK H
- 2/ ALL -H 2 OK -H
- 2/ ALL H -3 OK -H
- 2/ ALL -H -4 OK H
- 2/ ALL H 5 OK H
- 2/ ALL -H 6 OK -H
- 2/ ALL H -7 OK -H
- 2/ ALL -H -8 OK H
- ! Small_int / Inf -> 0.
- 2/ ALL 1 H OK 0
- 2/ ALL -2 H OK -0
- 2/ ALL 3 -H OK -0
- 2/ ALL -4 -H OK 0
- 2/ ALL 5 H OK 0
- 2/ ALL -6 H OK -0
- 2/ ALL 7 -H OK -0
- 2/ ALL -8 -H OK 0
- ! Huge / Inf -> 0.
- 2/ ALL Hm1 H OK 0
- 2/ ALL -Hm2 H OK -0
- 2/ ALL Hm1 -H OK -0
- 2/ ALL -Hm2 -H OK 0
- 2/ ALL Hm1d1 H OK 0
- 2/ ALL -Hm2d1 H OK -0
- 2/ ALL Hd1 -H OK -0
- 2/ ALL -Hd1 -H OK 0
- ! Inf / huge -> Inf.
- 2/ ALL H Hm1 OK H
- 2/ ALL -H Hm2 OK -H
- 2/ ALL H -Hm1 OK -H
- 2/ ALL -H -Hm2 OK H
- 2/ ALL H Hm1d1 OK H
- 2/ ALL H -Hm2d1 OK -H
- 2/ ALL H -Hd1 OK -H
- 2/ ALL -H -Hd1 OK H
- ! Inf / tiny -> Inf.
- 2/ ALL H E OK H
- 2/ ALL -H Ep1 OK -H
- 2/ ALL H -Ep1 OK -H
- 2/ ALL -H -E OK H
- 2/ ALL H Ep1d1 OK H
- 2/ ALL -H Ei1 OK -H
- 2/ ALL H -Ei1 OK -H
- 2/ ALL -H -Ep1d1 OK H
- ! Tiny / Inf -> 0.
- 2/ ALL E H OK 0
- 2/ ALL -Ep1 H OK -0
- 2/ ALL Ep1 -H OK -0
- 2/ ALL -E -H OK 0
- 2/ ALL Ep1d1 H OK 0
- 2/ ALL -Ei1 H OK -0
- 2/ ALL Ei1 -H OK -0
- 2/ ALL -Ep1d1 -H OK 0
- ! Inf / denormalized -> Inf.
- 2/ ALL H 0i1 OK H
- 2/ ALL -H 0i3 OK -H
- 2/ ALL H -0i2 OK -H
- 2/ ALL -H -0i4 OK H
- 2/ ALL H Ed1 OK H
- 2/ ALL -H Ed1 OK -H
- 2/ ALL H -Ed1 OK -H
- 2/ ALL -H -Ed1 OK H
- ! Denorm / Inf -> 0.
- 2/ ALL 0i1 H OK 0
- 2/ ALL -0i3 H OK -0
- 2/ ALL 0i2 -H OK -0
- 2/ ALL -0i4 -H OK 0
- 2/ ALL Ed1 H OK 0
- 2/ ALL -Ed1 H OK -0
- 2/ ALL Ed1 -H OK -0
- 2/ ALL -Ed1 -H OK 0
- ! 0 / small_integer -> 0.
- 2/ ALL 0 1 OK 0
- 2/ ALL -0 2 OK -0
- 2/ ALL 0 -3 OK -0
- 2/ ALL -0 -4 OK 0
- 2/ ALL 0 5 OK 0
- 2/ ALL -0 6 OK -0
- 2/ ALL 0 -7 OK -0
- 2/ ALL -0 -8 OK 0
- ! Small_int / 0 -> Inf with DivBy0.
- 2/ ALL 1 0 z H
- 2/ ALL -2 0 z -H
- 2/ ALL 3 -0 z -H
- 2/ ALL -4 -0 z H
- 2/ ALL 5 0 z H
- 2/ ALL -6 0 z -H
- 2/ ALL 7 -0 z -H
- 2/ ALL -8 -0 z H
- ! 0 / huge -> 0.
- 2/ ALL 0 Hm1 OK 0
- 2/ ALL -0 Hm2 OK -0
- 2/ ALL 0 -Hm1 OK -0
- 2/ ALL -0 -Hm2 OK 0
- 2/ ALL 0 Hm1d1 OK 0
- 2/ ALL -0 Hm2d1 OK -0
- 2/ ALL 0 -Hm2d1 OK -0
- 2/ ALL -0 -Hm1d1 OK 0
- ! Huge / 0 -> Inf with DivBy0.
- 2/ ALL Hm1 0 z H
- 2/ ALL -Hm2 0 z -H
- 2/ ALL Hm1 -0 z -H
- 2/ ALL -Hm2 -0 z H
- 2/ ALL Hm1d1 0 z H
- 2/ ALL -Hm2d1 0 z -H
- 2/ ALL Hm2d1 -0 z -H
- 2/ ALL -Hm1d1 -0 z H
- ! 0 / tiny -> 0.
- 2/ ALL 0 E OK 0
- 2/ ALL -0 Ep1 OK -0
- 2/ ALL 0 -Ep1 OK -0
- 2/ ALL -0 -E OK 0
- 2/ ALL 0 Ep1d1 OK 0
- 2/ ALL -0 Ei1 OK -0
- 2/ ALL 0 -Ei1 OK -0
- 2/ ALL -0 -Ep1d1 OK 0
- ! Tiny / 0 -> Inf with DivBy0.
- 2/ ALL E 0 z H
- 2/ ALL -Ep1 0 z -H
- 2/ ALL Ep1 -0 z -H
- 2/ ALL -E -0 z H
- 2/ ALL Ep1d1 0 z H
- 2/ ALL -Ei1 0 z -H
- 2/ ALL Ei1 -0 z -H
- 2/ ALL -Ep1d1 -0 z H
- ! 0 / denormalized -> 0.
- 2/ ALL 0 0i1 OK 0
- 2/ ALL -0 0i3 OK -0
- 2/ ALL 0 -0i2 OK -0
- 2/ ALL -0 -0i4 OK 0
- 2/ ALL 0 Ed1 OK 0
- 2/ ALL -0 Ed1 OK -0
- 2/ ALL 0 -Ed1 OK -0
- 2/ ALL -0 -Ed1 OK 0
- ! Denormalized * 0 -> Inf, DivBy0.
- 2/ ALL 0i1 0 z H
- 2/ ALL -0i3 0 z -H
- 2/ ALL 0i2 -0 z -H
- 2/ ALL -0i4 -0 z H
- 2/ ALL Ed1 0 z H
- 2/ ALL -Ed1 0 z -H
- 2/ ALL Ed1 -0 z -H
- 2/ ALL -Ed1 -0 z H
- ! Exact cases huge and 2.
- 2/ ALL Hm1 2 OK Hm2
- 2/ ALL Hm1 -2 OK -Hm2
- 2/ ALL -Hm1d1 2 OK -Hm2d1
- 2/ ALL Hm1d3 -2 OK -Hm2d3
- 2/ ALL Hm1 2 OK Hm2
- 2/ ALL Hm1 -2 OK -Hm2
- 2/ ALL -Hm1d1 2 OK -Hm2d1
- 2/ ALL Hm1d3 -2 OK -Hm2d3
- 2/ ALL Hd1 Hm1d1 OK 2
- 2/ ALL Hd1 -2 OK -Hm1d1
- 2/ ALL -Hm1i1 Hm2i1 OK -2
- 2/ ALL Hm1i3 -Hm2i3 OK -2
- 2/ ALL Hd1 Hm1d1 OK 2
- 2/ ALL Hd1 -2 OK -Hm1d1
- 2/ ALL -Hm1i1 Hm2i1 OK -2
- 2/ ALL Hm1i3 -Hm2i3 OK -2
- ! Exact cases huge and 4.
- 2/ ALL Hd1 Hm2d1 OK 4
- 2/ ALL -Hd1 Hm2d1 OK -4
- 2/ ALL Hd1 -Hm2d1 OK -4
- 2/ ALL -Hd1 -Hm2d1 OK 4
- 2/ ALL Hd1 Hm2d1 OK 4
- 2/ ALL -Hd1 Hm2d1 OK -4
- 2/ ALL Hd1 -Hm2d1 OK -4
- 2/ ALL -Hd1 -Hm2d1 OK 4
- 2/ ALL Hd3 4 OK Hm2d3
- 2/ ALL Hd3 -4 OK -Hm2d3
- 2/ ALL -Hd3 4 OK -Hm2d3
- 2/ ALL -Hd3 -4 OK Hm2d3
- 2/ ALL Hd3 4 OK Hm2d3
- 2/ ALL Hd3 -4 OK -Hm2d3
- 2/ ALL -Hd3 4 OK -Hm2d3
- 2/ ALL -Hd3 -4 OK Hm2d3
- ! Exact cases tiny and 2.
- 2/ ALL Ep1 E OK 2
- 2/ ALL Ep1 -2 OK -E
- 2/ ALL -Ep1i1 Ei1 OK -2
- 2/ ALL Ep1i3 -2 OK -Ei3
- 2/ ALL Ep1 E OK 2
- 2/ ALL Ep1 -2 OK -E
- 2/ ALL -Ep1i1 Ei1 OK -2
- 2/ ALL Ep1i3 -2 OK -Ei3
- 2/ ALL Ep1i1 Ei1 OK 2
- 2/ ALL Ep1i1 -2 OK -Ei1
- 2/ ALL -Ep1i5 Ei5 OK -2
- 2/ ALL Ep1i3 -Ei3 OK -2
- 2/ ALL Ep1i1 Ei1 OK 2
- 2/ ALL Ep1i1 -2 OK -Ei1
- 2/ ALL -Ep1i5 Ei5 OK -2
- 2/ ALL Ep1i3 -Ei3 OK -2
- 2/ ALL Ed1 1m1 OK Ep1d2
- 2/ ALL Ed1 1m9 OK Ep9d2
- ! Huge / tiny -> overflow.
- 2/ => Hm1 1m1 ox H
- 2/ 0< Hm1 1m1 ox Hd1
- 2/ => -Hm1 -1m1 ox H
- 2/ 0< -Hm1 -1m1 ox Hd1
- 2/ =< Hm1 -1m1 ox -H
- 2/ =< -Hm1 1m1 ox -H
- 2/ 0> Hm1 -1m1 ox -Hd1
- 2/ 0> -Hm1 1m1 ox -Hd1
- 2/ => Hm9 Ep9 ox H
- 2/ 0< Hm9 Ep9 ox Hd1
- 2/ => Hd1 0i1 ox H
- 2/ 0< Hd1 0i1 ox Hd1
- 2/ => Hm1 Ed1 ox H
- 2/ 0< Hm1 Ed1 ox Hd1
- 2/ => Hd1 1d1 ox H
- 2/ 0< Hd1 1d1 ox Hd1
- ! Will underflow unless loss of accuracy
- ! is detected as a denormalization loss.
- 2/ =0< E 1i1 xv Ed1
- 2/ =0> -E 1i1 xv -Ed1
- 2/ >= Ed2 1d2 xv Ed1
- 2/ >= Ed9 1d2 xv Ed8
- 2/ <= -Ed8 1d2 xv -Ed7
- 2/ <=0 Ei1 1i2 xv Ed1
- 2/ <=0 Ed1 1i2 xv Ed3
- 2/ <=0 Ei2 1i6 xv Ed4
- 2/ 0< Ed1 1i1 xv Ed2
- ! Tiny / huge -> underflow.
- 2/ =<0 0i1 Hd1 xu 0
- 2/ > 0i1 Hd1 xu 0i1
- 2/ =<0 -0i1 -Hd1 xu 0
- 2/ > -0i1 -Hd1 xu 0i1
- 2/ =0> 0i1 -Hd1 xu -0
- 2/ < 0i1 -Hd1 xu -0i1
- 2/ =0> -0i1 Hd1 xu -0
- 2/ < -0i1 Hd1 xu -0i1
- ! Tiny / 2.
- 2/ > 0i1 2 xu 0i1
- 2/ =0< 0i1 2 xu 0
- 2/ > -0i1 -2 xu 0i1
- 2/ =0< -0i1 -2 xu 0
- 2/ < 0i1 -2 xu -0i1
- 2/ =0> 0i1 -2 xu -0
- 2/ < -0i1 2 xu -0i1
- 2/ =0> -0i1 2 xu -0
- ! Barely underflow.
- 2/ 0< Ep1d1 2 xu Ed1
- 2/ 0> Ep1d1 -2 xu -Ed1
- 2/ >= Ep1d1 2 xu E
- 2/ > E 1i1 xu E
- 2/ < -E 1i1 xu -E
- 2/ > Ei1 1i2 xu E
- 2/ > Ed1 1i2 xu Ed2
- ! Denorm result but will not underflow.
- 2/ ALL Ep1d2 2 OK Ed1
- 2/ ALL Ed1 1 OK Ed1
- 2/ ALL 0i1 1m1 OK 0i2
- 2/ ALL 0i1 1m3 OK 0i8
- 2/ ALL 0i9 9 OK 0i1
- 2/ ALL 0i9 -9 OK -0i1
- 2/ ALL Ed1 -1 OK -Ed1
- 2/ ALL -0i1 1m1 OK -0i2
- ! Tricky divides based on power
- ! series expansions
- ! 1 / (1 + Nulp+) -->
- ! 1 - (2Nulp-) + tiny.
- 2/ = 1 1i1 x 1d2
- 2/ 0 1 1i1 x 1d2
- 2/ < 1 1i1 x 1d2
- 2/ > 1 1i1 x 1d1
- 2/ = 1 1i2 x 1d4
- 2/ 0 1 1i2 x 1d4
- 2/ < 1 1i2 x 1d4
- 2/ > 1 1i2 x 1d3
- 2/ = 1 1i3 x 1d6
- 2/ 0 1 1i3 x 1d6
- 2/ < 1 1i3 x 1d6
- 2/ > 1 1i3 x 1d5
- 2/ = 1 1i4 x 1d8
- 2/ 0 1 1i4 x 1d8
- 2/ < 1 1i4 x 1d8
- 2/ > 1 1i4 x 1d7
- ! 1 / (1 - Nu-) -->
- ! 1 + (Q/2 u+) + tiny.
- 2/ = 1 1d1 x 1i1
- 2/ 0 1 1d1 x 1
- 2/ < 1 1d1 x 1
- 2/ > 1 1d1 x 1i1
- 2/ = 1 1d2 x 1i1
- 2/ 0 1 1d2 x 1i1
- 2/ < 1 1d2 x 1i1
- 2/ > 1 1d2 x 1i2
- 2/ = 1 1d3 x 1i2
- 2/ 0 1 1d3 x 1i1
- 2/ < 1 1d3 x 1i1
- 2/ > 1 1d3 x 1i2
- 2/ = 1 1d4 x 1i2
- 2/ 0 1 1d4 x 1i2
- 2/ < 1 1d4 x 1i2
- 2/ > 1 1d4 x 1i3
- 2/ = 1 1d5 x 1i3
- 2/ 0 1 1d5 x 1i2
- 2/ < 1 1d5 x 1i2
- 2/ > 1 1d5 x 1i3
- 2/ = 1 1d8 x 1i4
- 2/ 0 1 1d8 x 1i4
- 2/ < 1 1d8 x 1i4
- 2/ > 1 1d8 x 1i5
- 2/ = 1 1d9 x 1i5
- 2/ 0 1 1d9 x 1i4
- 2/ < 1 1d9 x 1i4
- 2/ > 1 1d9 x 1i5
- ! (1 + Mu+) / (1 + Nu+) -->
- ! Case M > Q: (1 + Mu+) *
- ! (1 - Nu+ + (Nu+)^2 - tiny) -->
- ! 1 + (M-Q)u+ - (MN-NN)(u+)^2 + tiny -->
- ! 1 + (M-Q)u+ - tiny.
- ! M + Q = 3.
- 2/ = 1i2 1i1 x 1i1
- 2/ 0 1i2 1i1 x 1
- 2/ < 1i2 1i1 x 1
- 2/ > 1i2 1i1 x 1i1
- ! M + Q = 4.
- 2/ = 1i3 1i1 x 1i2
- 2/ 0 1i3 1i1 x 1i1
- 2/ < 1i3 1i1 x 1i1
- 2/ > 1i3 1i1 x 1i2
- ! M + Q = 5.
- 2/ = 1i4 1i1 x 1i3
- 2/ 0 1i4 1i1 x 1i2
- 2/ < 1i4 1i1 x 1i2
- 2/ > 1i4 1i1 x 1i3
- ! M + Q = 9.
- 2/ = 1i7 1i2 x 1i5
- 2/ 0 1i7 1i2 x 1i4
- 2/ < 1i7 1i2 x 1i4
- 2/ > 1i7 1i2 x 1i5
- ! Q = 17.
- 2/ = 1i9 1i8 x 1i1
- 2/ 0 1i9 1i8 x 1
- 2/ < 1i9 1i8 x 1
- 2/ > 1i9 1i8 x 1i1
- ! (1 + Mulp+) / (1 + Nulp+) -->
- ! Case M < Q: (1 + 2Mulp-) *
- ! (1 - 2Nulp- + (2Nulp-)^2 - tiny) -->
- ! 1 - 2(Q-M)ulp- +
- ! 4(NN-MN)(ulp-)^2 + tiny -->
- ! 1 - 2(Q-M)ulp- + tiny.
- ! M + Q = 3.
- 2/ = 1i1 1i2 x 1d2
- 2/ 0 1i1 1i2 x 1d2
- 2/ < 1i1 1i2 x 1d2
- 2/ > 1i1 1i2 x 1d1
- ! M + Q = 4.
- 2/ = 1i1 1i3 x 1d4
- 2/ 0 1i1 1i3 x 1d4
- 2/ < 1i1 1i3 x 1d4
- 2/ > 1i1 1i3 x 1d3
- ! M + Q = 5.
- 2/ = 1i2 1i3 x 1d2
- 2/ 0 1i2 1i3 x 1d2
- 2/ < 1i2 1i3 x 1d2
- 2/ > 1i2 1i3 x 1d1
- ! M + Q = 11.
- 2/ = 1i4 1i7 x 1d6
- 2/ 0 1i4 1i7 x 1d6
- 2/ < 1i4 1i7 x 1d6
- 2/ > 1i4 1i7 x 1d5
- ! M + Q = 14.
- 2/ = 1i6 1i8 x 1d4
- 2/ 0 1i6 1i8 x 1d4
- 2/ < 1i6 1i8 x 1d4
- 2/ > 1i6 1i8 x 1d3
- ! (1 - Mulp-) / (1 - Nulp-) -->
- ! Case M > Q: (1 - Mulp-) *
- ! (1 + Nulp- + (Nulp-)^2 + tiny) -->
- ! 1 - (M-Q)ulp- -
- ! (MN-NN)(ulp-)^2 + tiny -->
- ! 1 - (M-Q)ulp- - tiny.
- ! M + Q = 3.
- 2/ = 1d2 1d1 x 1d1
- 2/ 0 1d2 1d1 x 1d2
- 2/ < 1d2 1d1 x 1d2
- 2/ > 1d2 1d1 x 1d1
- ! M + Q = 4.
- 2/ = 1d3 1d1 x 1d2
- 2/ 0 1d3 1d1 x 1d3
- 2/ < 1d3 1d1 x 1d3
- 2/ > 1d3 1d1 x 1d2
- ! M + Q = 5.
- 2/ = 1d3 1d2 x 1d1
- 2/ 0 1d3 1d2 x 1d2
- 2/ < 1d3 1d2 x 1d2
- 2/ > 1d3 1d2 x 1d1
- 2/ = 1d4 1d1 x 1d3
- 2/ 0 1d4 1d1 x 1d4
- 2/ < 1d4 1d1 x 1d4
- 2/ > 1d4 1d1 x 1d3
- ! M + Q = 6.
- 2/ = 1d4 1d2 x 1d2
- 2/ 0 1d4 1d2 x 1d3
- 2/ < 1d4 1d2 x 1d3
- 2/ > 1d4 1d2 x 1d2
- ! M + Q = 7.
- 2/ = 1d4 1d3 x 1d1
- 2/ 0 1d4 1d3 x 1d2
- 2/ < 1d4 1d3 x 1d2
- 2/ > 1d4 1d3 x 1d1
- ! M + Q = 11.
- 2/ = 1d8 1d3 x 1d5
- 2/ 0 1d8 1d3 x 1d6
- 2/ < 1d8 1d3 x 1d6
- 2/ > 1d8 1d3 x 1d5
- 2/ = 1d9 1d2 x 1d7
- 2/ 0 1d9 1d2 x 1d8
- 2/ < 1d9 1d2 x 1d8
- 2/ > 1d9 1d2 x 1d7
- ! M + Q = 12.
- 2/ = 1d8 1d4 x 1d4
- 2/ 0 1d8 1d4 x 1d5
- 2/ < 1d8 1d4 x 1d5
- 2/ > 1d8 1d4 x 1d4
- ! M + Q = 14.
- 2/ = 1d9 1d5 x 1d4
- 2/ 0 1d9 1d5 x 1d5
- 2/ < 1d9 1d5 x 1d5
- 2/ > 1d9 1d5 x 1d4
- ! (1 - Mulp-) / (1 - Nulp-) -->
- ! Case M < Q: (1 - (M/2)ulp+) *
- ! (1 + (Q/2)ulp+ +
- ! ((Q/2)ulp+)^2 + tiny) -->
- ! 1 + ((Q-M)/2)ulp+ +
- ! (NN-MN)/4(ulp+)^2 + tiny -->
- ! 1 + (Q-M)/2ulp+ + tiny.
- ! M + Q = 3.
- 2/ = 1d1 1d2 x 1i1
- 2/ 0 1d1 1d2 x 1
- 2/ < 1d1 1d2 x 1
- 2/ > 1d1 1d2 x 1i1
- ! M + Q = 4.
- 2/ = 1d1 1d3 x 1i1
- 2/ 0 1d1 1d3 x 1i1
- 2/ < 1d1 1d3 x 1i1
- 2/ > 1d1 1d3 x 1i2
- ! M + Q = 5.
- 2/ = 1d2 1d3 x 1i1
- 2/ 0 1d2 1d3 x 1
- 2/ < 1d2 1d3 x 1
- 2/ > 1d2 1d3 x 1i1
- 2/ = 1d1 1d4 x 1i2
- 2/ 0 1d1 1d4 x 1i1
- 2/ < 1d1 1d4 x 1i1
- 2/ > 1d1 1d4 x 1i2
- ! M + Q = 6.
- 2/ = 1d2 1d4 x 1i1
- 2/ 0 1d2 1d4 x 1i1
- 2/ < 1d2 1d4 x 1i1
- 2/ > 1d2 1d4 x 1i2
- ! M + Q = 7.
- 2/ = 1d3 1d4 x 1i1
- 2/ 0 1d3 1d4 x 1
- 2/ < 1d3 1d4 x 1
- 2/ > 1d3 1d4 x 1i1
- ! M + Q = 8.
- 2/ = 1d1 1d7 x 1i3
- 2/ 0 1d1 1d7 x 1i3
- 2/ < 1d1 1d7 x 1i3
- 2/ > 1d1 1d7 x 1i4
- ! M + Q = 9.
- 2/ = 1d2 1d7 x 1i3
- 2/ 0 1d2 1d7 x 1i2
- 2/ < 1d2 1d7 x 1i2
- 2/ > 1d2 1d7 x 1i3
- ! M + Q = 10.
- 2/ = 1d3 1d7 x 1i2
- 2/ 0 1d3 1d7 x 1i2
- 2/ < 1d3 1d7 x 1i2
- 2/ > 1d3 1d7 x 1i3
- ! M + Q = 11.
- 2/ = 1d4 1d7 x 1i2
- 2/ 0 1d4 1d7 x 1i1
- 2/ < 1d4 1d7 x 1i1
- 2/ > 1d4 1d7 x 1i2
- ! M + Q = 12.
- 2/ = 1d5 1d7 x 1i1
- 2/ 0 1d5 1d7 x 1i1
- 2/ < 1d5 1d7 x 1i1
- 2/ > 1d5 1d7 x 1i2
- ! M + Q = 13.
- 2/ = 1d6 1d7 x 1i1
- 2/ 0 1d6 1d7 x 1
- 2/ < 1d6 1d7 x 1
- 2/ > 1d6 1d7 x 1i1
- ! (1 + Mulp+) / (1 - Nulp-) -->
- ! (1 + Mulp+) * (1 + (Q/2)ulp+ +
- ! ((Q/2)ulp+)^2 + tiny) -->
- ! 1 + (M + Q/2)ulp+ + tiny.
- ! M + Q = 2.
- 2/ = 1i1 1d1 x 1i2
- 2/ 0 1i1 1d1 x 1i1
- 2/ < 1i1 1d1 x 1i1
- 2/ > 1i1 1d1 x 1i2
- ! M + Q = 3.
- 2/ = 1i1 1d2 x 1i2
- 2/ 0 1i1 1d2 x 1i2
- 2/ < 1i1 1d2 x 1i2
- 2/ > 1i1 1d2 x 1i3
- 2/ = 1i2 1d1 x 1i3
- 2/ 0 1i2 1d1 x 1i2
- 2/ < 1i2 1d1 x 1i2
- 2/ > 1i2 1d1 x 1i3
- ! M + Q = 4.
- 2/ = 1i1 1d3 x 1i3
- 2/ 0 1i1 1d3 x 1i2
- 2/ < 1i1 1d3 x 1i2
- 2/ > 1i1 1d3 x 1i3
- 2/ = 1i3 1d1 x 1i4
- 2/ 0 1i3 1d1 x 1i3
- 2/ < 1i3 1d1 x 1i3
- 2/ > 1i3 1d1 x 1i4
- 2/ = 1i2 1d2 x 1i3
- 2/ 0 1i2 1d2 x 1i3
- 2/ < 1i2 1d2 x 1i3
- 2/ > 1i2 1d2 x 1i4
- ! M + Q = 5.
- 2/ = 1i3 1d2 x 1i4
- 2/ 0 1i3 1d2 x 1i4
- 2/ < 1i3 1d2 x 1i4
- 2/ > 1i3 1d2 x 1i5
- 2/ = 1i2 1d3 x 1i4
- 2/ 0 1i2 1d3 x 1i3
- 2/ < 1i2 1d3 x 1i3
- 2/ > 1i2 1d3 x 1i4
- ! M + Q = 6.
- 2/ = 1i3 1d3 x 1i5
- 2/ 0 1i3 1d3 x 1i4
- 2/ < 1i3 1d3 x 1i4
- 2/ > 1i3 1d3 x 1i5
- 2/ = 1i1 1d5 x 1i4
- 2/ 0 1i1 1d5 x 1i3
- 2/ < 1i1 1d5 x 1i3
- 2/ > 1i1 1d5 x 1i4
- 2/ = 1i5 1d1 x 1i6
- 2/ 0 1i5 1d1 x 1i5
- 2/ < 1i5 1d1 x 1i5
- 2/ > 1i5 1d1 x 1i6
- 2/ = 1i2 1d4 x 1i4
- 2/ 0 1i2 1d4 x 1i4
- 2/ < 1i2 1d4 x 1i4
- 2/ > 1i2 1d4 x 1i5
- 2/ = 1i4 1d2 x 1i5
- 2/ 0 1i4 1d2 x 1i5
- 2/ < 1i4 1d2 x 1i5
- 2/ > 1i4 1d2 x 1i6
- ! (1 - Mulp-) / (1 + Nulp+) -->
- ! (1 - Mulp-) * (1 - 2Nulp- +
- ! (2Nulp-)^2 - tiny) -->
- ! 1 - (M + 2N)ulp- + tiny.
- ! M + Q = 2.
- 2/ = 1d1 1i1 x 1d3
- 2/ 0 1d1 1i1 x 1d3
- 2/ < 1d1 1i1 x 1d3
- 2/ > 1d1 1i1 x 1d2
- ! M + Q = 3.
- 2/ = 1d2 1i1 x 1d4
- 2/ 0 1d2 1i1 x 1d4
- 2/ < 1d2 1i1 x 1d4
- 2/ > 1d2 1i1 x 1d3
- 2/ = 1d1 1i2 x 1d5
- 2/ 0 1d1 1i2 x 1d5
- 2/ < 1d1 1i2 x 1d5
- 2/ > 1d1 1i2 x 1d4
- ! M + Q = 4.
- 2/ = 1d3 1i1 x 1d5
- 2/ 0 1d3 1i1 x 1d5
- 2/ < 1d3 1i1 x 1d5
- 2/ > 1d3 1i1 x 1d4
- 2/ = 1d1 1i3 x 1d7
- 2/ 0 1d1 1i3 x 1d7
- 2/ < 1d1 1i3 x 1d7
- 2/ > 1d1 1i3 x 1d6
- 2/ = 1d2 1i2 x 1d6
- 2/ 0 1d2 1i2 x 1d6
- 2/ < 1d2 1i2 x 1d6
- 2/ > 1d2 1i2 x 1d5
- ! M + Q = 5.
- 2/ = 1d4 1i1 x 1d6
- 2/ 0 1d4 1i1 x 1d6
- 2/ < 1d4 1i1 x 1d6
- 2/ > 1d4 1i1 x 1d5
- 2/ = 1d1 1i4 x 1d9
- 2/ 0 1d1 1i4 x 1d9
- 2/ < 1d1 1i4 x 1d9
- 2/ > 1d1 1i4 x 1d8
- 2/ = 1d3 1i2 x 1d7
- 2/ 0 1d3 1i2 x 1d7
- 2/ < 1d3 1i2 x 1d7
- 2/ > 1d3 1i2 x 1d6
- 2/ = 1d2 1i3 x 1d8
- 2/ 0 1d2 1i3 x 1d8
- 2/ < 1d2 1i3 x 1d8
- 2/ > 1d2 1i3 x 1d7
- ! Nan operands.
- 2/ ALL Q 0 OK Q
- 2/ ALL Q -0 OK Q
- 2/ ALL 0 Q OK Q
- 2/ ALL -0 Q OK Q
- 2/ ALL Q 1 OK Q
- 2/ ALL Q -1 OK Q
- 2/ ALL 1 Q OK Q
- 2/ ALL -1 Q OK Q
- 2/ ALL Ed1 Q OK Q
- 2/ ALL -Ed1 Q OK Q
- 2/ ALL Q Ed1 OK Q
- 2/ ALL Q -Ed1 OK Q
- 2/ ALL Q 0i1 OK Q
- 2/ ALL Q -0i1 OK Q
- 2/ ALL 0i1 Q OK Q
- 2/ ALL -0i1 Q OK Q
- 2/ ALL Q Hd1 OK Q
- 2/ ALL Q -Hd1 OK Q
- 2/ ALL Hd1 Q OK Q
- 2/ ALL -Hd1 Q OK Q
- 2/ ALL Q H OK Q
- 2/ ALL Q -H OK Q
- 2/ ALL H Q OK Q
- 2/ ALL -H Q OK Q
- 2/ ALL Q Q OK Q
- 2/ ALL S 0 i Q
- 2/ ALL S -0 i Q
- 2/ ALL 0 S i Q
- 2/ ALL -0 S i Q
- 2/ ALL S 1 i Q
- 2/ ALL S -1 i Q
- 2/ ALL 1 S i Q
- 2/ ALL -1 S i Q
- 2/ ALL Ed1 S i Q
- 2/ ALL -Ed1 S i Q
- 2/ ALL S Ed1 i Q
- 2/ ALL S -Ed1 i Q
- 2/ ALL S 0i1 i Q
- 2/ ALL S -0i1 i Q
- 2/ ALL 0i1 S i Q
- 2/ ALL -0i1 S i Q
- 2/ ALL S Hd1 i Q
- 2/ ALL S -Hd1 i Q
- 2/ ALL Hd1 S i Q
- 2/ ALL -Hd1 S i Q
- 2/ ALL S H i Q
- 2/ ALL S -H i Q
- 2/ ALL H S i Q
- 2/ ALL -H S i Q
- 2/ ALL Q S i Q
- 2/ ALL S Q i Q
- 2/ ALL S S i Q
- !
- ! Test vectors for the fraction part
- ! of number as if with infinite range.
- !
- ! Mid-range.
- 2F ALL 1 0 OK 1
- 2F ALL -1 0 OK -1
- 2F ALL 2 0 OK 1
- 2F ALL 3 0 OK 3m1
- 2F ALL 4 0 OK 1
- 2F ALL 5 0 OK 5m2
- 2F ALL 6 0 OK 6m2
- 2F ALL 7 0 OK 7m2
- 2F ALL -7 0 OK -7m2
- 2F ALL 8 0 OK 1
- 2F ALL 9 0 OK 9m3
- 2F ALL 1i1 0 OK 1i1
- 2F ALL 2i1 0 OK 1i1
- 2F ALL 3i1 0 OK 3m1i1
- 2F ALL 4i1 0 OK 1i1
- 2F ALL 5i1 0 OK 5m2i1
- 2F ALL 6i1 0 OK 6m2i1
- 2F ALL 7i1 0 OK 7m2i1
- 2F ALL 8i1 0 OK 1i1
- 2F ALL 9i1 0 OK 9m3i1
- 2F ALL -9i1 0 OK -9m3i1
- 2F ALL 1d1 0 OK 2d1
- 2F ALL 2d1 0 OK 2d1
- 2F ALL 3d1 0 OK 3d1m1
- 2F ALL 4d1 0 OK 2d1
- 2F ALL 5d1 0 OK 5d1m2
- 2F ALL 6d1 0 OK 6d1m2
- 2F ALL 7d1 0 OK 7d1m2
- 2F ALL 8d1 0 OK 2d1
- 2F ALL -8d1 0 OK -2d1
- 2F ALL 9d1 0 OK 9d1m3
- ! Small.
- 2F ALL E 0 OK 1
- 2F ALL -E 0 OK -1
- 2F ALL Ei1 0 OK 1i1
- 2F ALL Ed1 0 OK 2d2
- 2F ALL Ei8 0 OK 1i8
- 2F ALL Ed4 0 OK 2d8
- 2F ALL 0i1 0 OK 1
- 2F ALL -0i1 0 OK -1
- 2F ALL 0i8 0 OK 1
- 2F ALL 0i9 0 OK 9m3
- 2F ALL Ep1d1 0 OK 2d1
- 2F ALL Ep1d9 0 OK 2d9
- 2F ALL Ep1i1 0 OK 1i1
- ! Large.
- 2F ALL Hm1 0 OK 1
- 2F ALL Hd1 0 OK 2d1
- 2F ALL -Hm1 0 OK -1
- 2F ALL -Hd1 0 OK -2d1
- 2F ALL Hd9 0 OK 2d9
- 2F ALL Hm1i1 0 OK 1i1
- 2F ALL Hm1i8 0 OK 1i8
- 2F ALL Hm1d1 0 OK 2d1
- ! LogB test vectors
- 2L ALL 1 0 OK 0
- 2L ALL 2 0 OK 1
- 2L ALL -2 0 OK 1
- 2L ALL 3 0 OK 1
- 2L ALL 4 0 OK 2
- 2L ALL 5 0 OK 2
- 2L ALL 6 0 OK 2
- 2L ALL 7 0 OK 2
- 2L ALL 8 0 OK 3
- 2L ALL 9 0 OK 3
- 2L ALL 1p9 0 OK 9
- 2L ALL 2p8 0 OK 9
- 2L ALL 3p8 0 OK 9
- 2L ALL -3p8 0 OK 9
- 2L ALL 4p7 0 OK 9
- 2L ALL 5p7 0 OK 9
- 2L ALL 6p7 0 OK 9
- 2L ALL 7p7 0 OK 9
- 2L ALL 8p6 0 OK 9
- 2L ALL 9p6 0 OK 9
- 2L ALL 1p9d1 0 OK 8
- 2L ALL 2p8d1 0 OK 8
- 2L ALL 3p8d1 0 OK 9
- 2L ALL 4p7d1 0 OK 8
- 2L ALL -4p7d1 0 OK 8
- 2L ALL 5p7d1 0 OK 9
- 2L ALL 6p7d1 0 OK 9
- 2L ALL 7p7d1 0 OK 9
- 2L ALL 8p6d1 0 OK 8
- 2L ALL 9p6d1 0 OK 9
- 2L ALL 1m1 0 OK -1
- 2L ALL 3m1 0 OK 0
- 2L ALL 3m2 0 OK -1
- 2L ALL 9m1 0 OK 2
- 2L ALL 9m2 0 OK 1
- 2L ALL 9m3 0 OK 0
- 2L ALL 9m4 0 OK -1
- 2L ALL 9m5 0 OK -2
- 2L ALL 9m6 0 OK -3
- 2L ALL -9m6 0 OK -3
- 2L ALL 9m7 0 OK -4
- 2L ALL 9m8 0 OK -5
- 2L ALL 1d1 0 OK -1
- 2L ALL 2d1 0 OK 0
- 2L ALL 3d1 0 OK 1
- 2L ALL 4d1 0 OK 1
- 2L ALL 5d1 0 OK 2
- 2L ALL 6d1 0 OK 2
- 2L ALL 7d1 0 OK 2
- 2L ALL 8d1 0 OK 2
- 2L ALL -8d1 0 OK 2
- 2L ALL 9d1 0 OK 3
- 2L ALL 1m1d1 0 OK -2
- 2L ALL 3m1d1 0 OK 0
- 2L ALL 3m2d1 0 OK -1
- 2L ALL 9m1d1 0 OK 2
- 2L ALL 9m2d1 0 OK 1
- 2L ALL 9m3d1 0 OK 0
- 2L ALL 9m4d1 0 OK -1
- 2L ALL 9m5d1 0 OK -2
- 2L ALL 9m6d1 0 OK -3
- 2L ALL 9m7d1 0 OK -4
- 2L ALL 9m8d1 0 OK -5
- 2L ALL -9m7d1 0 OK -4
- 2L ALL 1p8p8 0 OK 1p4
- 2L ALL 1p8p8p8p8 0 OK 1p5
- 2L ALL 1p8p8p8p8p8p8p8p8 0 OK 1p6
- 2L ALL 1p8p8p8p8p8p8p8p8i9 0 OK 1p6
- 2L ALL -1p8p8p8p8p8p8p8p8i9 0 OK 1p6
- 2L ALL 1m8m8 0 OK -1p4
- 2L ALL 1m8m8m8m8 0 OK -1p5
- 2L ALL 1m8m8m8m8m8m8m8m8 0 OK -1p6
- 2L ALL 1m8m8m8m8m8m8m8m8i9 0 OK -1p6
- 2L ALL -1m8m8m8m8m8m8m8m8i9 0 OK -1p6
- ! Exceptional cases.
- 2L ALL Q 0 OK Q
- 2L ALL S 0 i Q
- 2L ALL H 0 OK H
- 2L ALL -H 0 OK H
- 2L ALL 0 0 z -H
- 2L ALL -0 0 z -H
- ! First some easy tests for consistency.
- 2* ALL 1 1 OK 1
- 2* ALL 1 2 OK 2
- 2* ALL 2 1 OK 2
- 2* ALL 2 3 OK 6
- 2* ALL 3 2 OK 6
- 2* ALL 3 3 OK 9
- ! Check out sign manipulation.
- 2* ALL -1 1 OK -1
- 2* ALL -1 2 OK -2
- 2* ALL 2 -1 OK -2
- 2* ALL -2 3 OK -6
- 2* ALL 3 -2 OK -6
- 2* ALL -3 3 OK -9
- 2* ALL -1 -1 OK 1
- 2* ALL -1 -2 OK 2
- 2* ALL -2 -1 OK 2
- 2* ALL -2 -3 OK 6
- 2* ALL -3 -2 OK 6
- 2* ALL -3 -3 OK 9
- ! Some zero tests, round mode is
- ! irrelevant.
- 2* ALL 0 0 OK 0
- 2* ALL -0 0 OK -0
- 2* ALL 0 -0 OK -0
- 2* ALL -0 -0 OK 0
- ! Infinity tests, round mode
- ! irrelevant.
- 2* ALL H H OK H
- 2* ALL -H H OK -H
- 2* ALL H -H OK -H
- 2* ALL -H -H OK H
- ! Inf * 0 -- always bad news.
- 2* ALL H 0 i Q
- 2* ALL -0 H i -Q
- 2* ALL H -0 i -Q
- 2* ALL -0 -H i Q
- ! Inf * small_integer -> Inf.
- 2* ALL H 1 OK H
- 2* ALL -2 H OK -H
- 2* ALL H -3 OK -H
- 2* ALL -4 -H OK H
- 2* ALL 5 H OK H
- 2* ALL -H 6 OK -H
- 2* ALL 7 -H OK -H
- 2* ALL -H -8 OK H
- ! Inf * huge -> Inf.
- 2* ALL Hm1 H OK H
- 2* ALL -Hm2 H OK -H
- 2* ALL H -Hm1 OK -H
- 2* ALL -H -Hm2 OK H
- 2* ALL H Hm1d1 OK H
- 2* ALL -Hm2d1 H OK -H
- 2* ALL H -Hd1 OK -H
- 2* ALL -Hd1 -H OK H
- ! Inf * tiny -> Inf.
- 2* ALL E H OK H
- 2* ALL -Ep1 H OK -H
- 2* ALL H -Ep1 OK -H
- 2* ALL -H -E OK H
- 2* ALL H Ep1d1 OK H
- 2* ALL -Ei1 H OK -H
- 2* ALL H -Ei1 OK -H
- 2* ALL -Ep1d1 -H OK H
- ! Inf * denormalized -> Inf.
- 2* ALL 0i1 H OK H
- 2* ALL -0i3 H OK -H
- 2* ALL H -0i2 OK -H
- 2* ALL -H -0i4 OK H
- 2* ALL H Ed1 OK H
- 2* ALL -Ed1 H OK -H
- 2* ALL H -Ed1 OK -H
- 2* ALL -Ed1 -H OK H
- ! 0 * small_integer -> 0.
- 2* ALL 0 1 OK 0
- 2* ALL -2 0 OK -0
- 2* ALL 0 -3 OK -0
- 2* ALL -4 -0 OK 0
- 2* ALL 5 0 OK 0
- 2* ALL -0 6 OK -0
- 2* ALL 7 -0 OK -0
- 2* ALL -0 -8 OK 0
- ! 0 * huge -> 0.
- 2* ALL Hm1 0 OK 0
- 2* ALL -Hm2 0 OK -0
- 2* ALL 0 -Hm1 OK -0
- 2* ALL -0 -Hm2 OK 0
- 2* ALL 0 Hm1d1 OK 0
- 2* ALL -Hm2d1 0 OK -0
- 2* ALL 0 -Hm2d1 OK -0
- 2* ALL -Hm1d1 -0 OK 0
- 2* ALL Hd1 0 OK 0
- 2* ALL -Hd1 -0 OK 0
- 2* ALL 0 -Hd1 OK -0
- 2* ALL -0 Hd1 OK -0
- ! 0 * tiny -> 0.
- 2* ALL E 0 OK 0
- 2* ALL -Ep1 0 OK -0
- 2* ALL 0 -Ep1 OK -0
- 2* ALL -0 -E OK 0
- 2* ALL 0 Ep1d1 OK 0
- 2* ALL -Ei1 0 OK -0
- 2* ALL 0 -Ei1 OK -0
- 2* ALL -Ep1d1 -0 OK 0
- ! 0 * denormalized -> 0.
- 2* ALL 0i1 0 OK 0
- 2* ALL -0i3 0 OK -0
- 2* ALL 0 -0i2 OK -0
- 2* ALL -0 -0i4 OK 0
- 2* ALL 0 Ed1 OK 0
- 2* ALL -Ed1 0 OK -0
- 2* ALL 0 -Ed1 OK -0
- 2* ALL -Ed1 -0 OK 0
- ! Exact cases huge and 2.
- 2* ALL 2 Hm2 OK Hm1
- 2* ALL Hm2 -2 OK -Hm1
- 2* ALL -2 Hm2d1 OK -Hm1d1
- 2* ALL 2 -Hm2d3 OK -Hm1d3
- 2* ALL 2 Hm2 OK Hm1
- 2* ALL Hm2 -2 OK -Hm1
- 2* ALL -2 Hm2d1 OK -Hm1d1
- 2* ALL 2 -Hm2d3 OK -Hm1d3
- 2* ALL 2 Hm1d1 OK Hd1
- 2* ALL Hm1d1 -2 OK -Hd1
- 2* ALL -2 Hm2i1 OK -Hm1i1
- 2* ALL 2 -Hm2i3 OK -Hm1i3
- 2* ALL 2 Hm1d1 OK Hd1
- 2* ALL Hm1d1 -2 OK -Hd1
- 2* ALL -2 Hm2i1 OK -Hm1i1
- 2* ALL 2 -Hm2i3 OK -Hm1i3
- ! Exact cases huge and 4.
- 2* ALL 4 Hm2d1 OK Hd1
- 2* ALL -4 Hm2d1 OK -Hd1
- 2* ALL 4 -Hm2d1 OK -Hd1
- 2* ALL -4 -Hm2d1 OK Hd1
- 2* ALL 4 Hm2d1 OK Hd1
- 2* ALL -4 Hm2d1 OK -Hd1
- 2* ALL 4 -Hm2d1 OK -Hd1
- 2* ALL -4 -Hm2d1 OK Hd1
- 2* ALL Hm2d3 4 OK Hd3
- 2* ALL Hm2d3 -4 OK -Hd3
- 2* ALL -Hm2d3 4 OK -Hd3
- 2* ALL -Hm2d3 -4 OK Hd3
- 2* ALL Hm2d3 4 OK Hd3
- 2* ALL Hm2d3 -4 OK -Hd3
- 2* ALL -Hm2d3 4 OK -Hd3
- 2* ALL -Hm2d3 -4 OK Hd3
- ! Exact cases tiny and 2.
- 2* ALL 2 E OK Ep1
- 2* ALL E -2 OK -Ep1
- 2* ALL -2 Ei1 OK -Ep1i1
- 2* ALL 2 -Ei3 OK -Ep1i3
- 2* ALL 2 E OK Ep1
- 2* ALL E -2 OK -Ep1
- 2* ALL -2 Ei9 OK -Ep1i9
- 2* ALL 2 -Ei5 OK -Ep1i5
- 2* ALL 2 Ei1 OK Ep1i1
- 2* ALL Ei1 -2 OK -Ep1i1
- 2* ALL -2 Ei5 OK -Ep1i5
- 2* ALL 2 -Ei3 OK -Ep1i3
- 2* ALL 2 Ei1 OK Ep1i1
- 2* ALL Ei1 -2 OK -Ep1i1
- 2* ALL -2 Ei5 OK -Ep1i5
- 2* ALL 2 -Ei3 OK -Ep1i3
- ! Just below denormalization threshold.
- 2* ALL Ed1 2 OK Ep1d2
- 2* ALL -2 Ed3 OK -Ep1d6
- 2* ALL -Ed3 -2 OK Ep1d6
- 2* ALL -2 Ed3 OK -Ep1d6
- 2* ALL Ed4 2 OK Ep1d8
- 2* ALL 2 -Ed3 OK -Ep1d6
- ! Normalizing tinies.
- 2* ALL 0i1 2 OK 0i2
- 2* ALL 3 0i2 OK 0i6
- 2* ALL -0i1 5 OK -0i5
- 2* ALL 1 -0i9 OK -0i9
- 2* ALL -0i4 -1 OK 0i4
- 2* ALL 4 0i2 OK 0i8
- 2* ALL 0i1 2 OK 0i2
- 2* ALL 3 0i2 OK 0i6
- 2* ALL -0i1 5 OK -0i5
- 2* ALL 1 -0i9 OK -0i9
- 2* ALL -0i4 -1 OK 0i4
- 2* ALL 4 0i2 OK 0i8
- 2* ALL 0i1 2 OK 0i2
- 2* ALL 3 0i2 OK 0i6
- 2* ALL -0i1 5 OK -0i5
- 2* ALL 1 -0i9 OK -0i9
- 2* ALL -0i4 -1 OK 0i4
- 2* ALL 4 0i2 OK 0i8
- 2* ALL 0i1 2 OK 0i2
- 2* ALL 3 0i2 OK 0i6
- 2* ALL -0i1 5 OK -0i5
- 2* ALL 1 -0i9 OK -0i9
- 2* ALL -0i4 -1 OK 0i4
- 2* ALL 4 0i2 OK 0i8
- ! 1.0 * various.
- 2* ALL 1 Ep1i3 OK Ep1i3
- 2* ALL -Ep1d2 1 OK -Ep1d2
- 2* ALL -1 Ei9 OK -Ei9
- 2* ALL -Ei1 -1 OK Ei1
- 2* ALL 1 Ep1i3 OK Ep1i3
- 2* ALL -Ep1d2 1 OK -Ep1d2
- 2* ALL -1 Ei9 OK -Ei9
- 2* ALL -Ei1 -1 OK Ei1
- 2* ALL 1 Ed3 OK Ed3
- 2* ALL -0i2 1 OK -0i2
- 2* ALL -1 0i9 OK -0i9
- 2* ALL -Ed1 -1 OK Ed1
- 2* ALL 1 Ed3 OK Ed3
- 2* ALL -0i2 1 OK -0i2
- 2* ALL -1 0i9 OK -0i9
- 2* ALL -Ed1 -1 OK Ed1
- ! Now some tricky rounding cases involving
- ! 1.0 with some ulps.
- ! result = 1.00000...010|000...0001
- 2* =0< 1i1 1i1 x 1i2
- 2* > 1i1 1i1 x 1i3
- ! Try signs...
- 2* =0> -1i1 1i1 x -1i2
- 2* < -1i1 1i1 x -1i3
- 2* =0> 1i1 -1i1 x -1i2
- 2* < 1i1 -1i1 x -1i3
- 2* =0< -1i1 -1i1 x 1i2
- 2* > -1i1 -1i1 x 1i3
- ! result = 1.0000..011|0000100
- 2* =0< 1i2 1i1 x 1i3
- 2* > 1i2 1i1 x 1i4
- ! Try signs...
- 2* =0> -1i2 1i1 x -1i3
- 2* < -1i2 1i1 x -1i4
- 2* =0> 1i1 -1i2 x -1i3
- 2* < 1i1 -1i2 x -1i4
- 2* =0< -1i2 -1i1 x 1i3
- 2* > -1i1 -1i2 x 1i4
- 2* > -1i2 -1i1 x 1i4
- 2* =0< -1i1 -1i2 x 1i3
- ! (m + k ulps of m) * (1 + j ulps of 1)
- ! = m + (k + m*j/2^floor(log m)) ulps
- ! of m + tiny.
- 2* => 3i1 1i1 x 3i3
- 2* 0< 3i1 1i1 x 3i2
- 2* >= 3i1 1i3 x 3i6
- 2* 0< 3i1 1i3 x 3i5
- 2* =< -3i1 1i1 x -3i3
- 2* 0> -3i1 1i1 x -3i2
- 2* <= 3i1 -1i3 x -3i6
- 2* 0> 3i1 -1i3 x -3i5
- 2* > 5i1 1i1 x 5i3
- 2* =0< 5i1 1i1 x 5i2
- 2* > -5i1 -1i1 x 5i3
- 2* =0< -5i1 -1i1 x 5i2
- 2* >= 7i1 1i1 x 7i3
- 2* <0 7i1 1i1 x 7i2
- 2* 0<= 3d1 1d1 x 3d2
- 2* > 3d1 1d1 x 3d1
- 2* 0< 3d1 1d3 x 3d4
- 2* => 3d1 1d3 x 3d3
- 2* 0>= -3d1 1d1 x -3d2
- 2* < -3d1 1d1 x -3d1
- 2* 0> 3d1 -1d3 x -3d4
- 2* =< 3d1 -1d3 x -3d3
- 2* => 3d1 1d2 x 3d2
- 2* 0< 3d1 1d2 x 3d3
- 2* 0<= 5d1 1d1 x 5d2
- 2* > 5d1 1d1 x 5d1
- 2* 0<= -5d1 -1d1 x 5d2
- 2* > -5d1 -1d1 x 5d1
- 2* <=0 7d1 1d1 x 7d2
- 2* > 7d1 1d1 x 7d1
- 2* => 7d1 1d4 x 7d4
- 2* 0< 7d1 1d4 x 7d5
- ! Some overflow conditions, watching
- ! round mode.
- 2* => Hm1 2 ox H
- 2* 0< Hm1 2i1 ox Hd1
- 2* =< -3d2 Hm1 ox -H
- 2* 0> Hm1 -4i5 ox -Hd1
- 2* => -5d2 -Hm1 ox H
- 2* 0< Hm1 6i1 ox Hd1
- 2* =< -7d7 Hm1 ox -H
- 2* 0> Hm1 -8i3 ox -Hd1
- 2* => -9i1 -Hm1 ox H
- 2* 0< Hm1 6 ox Hd1
- 2* =< -9 Hm1 ox -H
- 2* 0> Hm1 -2 ox -Hd1
- 2* 0< -7 -Hm1 ox Hd1
- 2* => Hm1 2 ox H
- 2* 0> -5 Hm1 ox -Hd1
- 2* 0> Hm1 -2 ox -Hd1
- 2* => -3 -Hm1 ox H
- ! Heavy overflow conditions,
- ! watching round mode.
- 2* => Hm1 Hm1 xo H
- 2* =< -Hd3 Hm1 xo -H
- 2* =< Hm1 -Hm2i4 xo -H
- 2* => -Hm1i5 -Hm1i1 ox H
- 2* => Hm1i9 Hd6 xo H
- 2* =< -Hm2d7 Hm1 xo -H
- 2* =< Hm1 -Hm2 xo -H
- 2* => -Hd1 -Hd1 xo H
- 2* 0< Hm1 Hm2i6 xo Hd1
- 2* =< -Hm1d9 Hm2i1 xo -H
- 2* =< Hm1 -Hm1 xo -H
- 2* 0< -Hm2d7 -Hd1 xo Hd1
- 2* => Hm1 Hd2 xo H
- 2* 0> -Hm2 Hm1 xo -Hd1
- 2* 0> Hm1i9 -Hm2i2 xo -Hd1
- 2* => -Hd3 -Hm1i1 xo H
- ! Mixed bag overflow conditions,
- ! watching round mode. Tricky cases
- ! require careful look at power series
- ! expansion. Example -- -Hmd1 * 1i1:
- ! In single...
- ! -(2^127 (1 - 2^-24)) * (1 + 2^-23) -->
- ! -( 2^127 (1 + 2^-24 - 2^-47) ) -->
- ! -2^127 except when rounding <, in which
- ! case -( 2^127 (1 + 2^-23) ); that is,
- ! -Hm or -Hmi1, respectively!
- 2* =0> -Hm1d1 1i1 x -Hm1
- 2* < -Hm1d1 1i1 x -Hm1i1
- 2* =0< -1d1 -Hd1 x Hd2
- 2* > -1d1 -Hd1 x Hd1
- 2* < -Hm2d1 2i1 x -Hm1i1
- 2* =0> -Hm2d1 2i1 x -Hm1
- 2* <= Hm1d3 -2i8 xo -H
- 2* >0 Hm1d3 -2i8 xo -Hd1
- 2* =0< -Hm2d7 -4d1 x Hd8
- 2* > -Hm2d7 -4d1 x Hd7
- 2* => 1i2 Hd2 xo H
- 2* 0< 1i2 Hd2 xo Hd1
- 2* =< Hm1i9 -6i2 xo -H
- 2* 0> Hm1i9 -6i2 xo -Hd1
- 2* => -Hd3 -3i1 xo H
- 2* 0< -Hd3 -3i1 xo Hd1
- ! Exact and below denomalization threshold -- no underflow.
- 2* ALL E 1d2 OK Ed1
- 2* ALL 0i1 1 OK 0i1
- 2* ALL 1 -0i1 OK -0i1
- 2* ALL Ep1d2 1m1 OK Ed1
- 2* ALL -Ep1d4 -1m1 OK Ed2
- 2* ALL Ep1d2 -1m1 OK -Ed1
- 2* ALL -Ep1d4 1m1 OK -Ed2
- 2* ALL Ep1d8 1m1 OK Ed4
- 2* ALL 0i8 1m3 OK 0i1
- 2* ALL 0i6 1m1 OK 0i3
- 2* ALL -0i8 1m3 OK -0i1
- 2* ALL 0i6 -1m1 OK -0i3
- ! Inexact, extreme underflows.
- 2* =0< E E xu 0
- 2* =0< -E -E xu 0
- 2* > E Ep1 xu 0i1
- 2* > -Ep1 -Ep1 xu 0i1
- 2* =0> -E E xu -0
- 2* =0> E -E xu -0
- 2* < -E Ep1 xu -0i1
- 2* < E -E xu -0i1
- 2* =0< Ed1 Ed2 xu 0
- 2* =0< -Ed1 -Ed2 xu 0
- 2* > Ed1 Ed2 xu 0i1
- 2* > -Ed1 -Ed2 xu 0i1
- 2* =0> -Ed9 Ep1i3 xu -0
- 2* =0> Ed9 -Ep1i3 xu -0
- 2* < -Ed9 Ep1i3 xu -0i1
- 2* < Ed9 -Ep1i3 xu -0i1
- 2* > 0i1 1m1 xu 0i1
- 2* =0< 0i1 1m1 xu 0
- 2* < 1m1 -0i1 xu -0i1
- 2* =0> 1m1 -0i1 xu -0
- 2* <0 0i1 1d1 xu 0
- 2* => 0i1 1d1 xu 0i1
- 2* > 0i1 0i1 xu 0i1
- 2* =0< 0i1 0i1 xu 0
- 2* >0 -0i1 1d1 xu -0
- 2* =< 0i1 -1d1 xu -0i1
- 2* < 0i1 -0i1 xu -0i1
- 2* =0> -0i1 0i1 xu -0
- ! Underflow, barely.
- 2* 0< Ep1d1 1m1 xu Ed1
- 2* 0< -Ep1d1 -1m1 xu Ed1
- 2* 0> -Ep1d1 1m1 xu -Ed1
- 2* >= Ep1d1 1m1 xu E
- 2* <= Ep1d1 -1m1 xu -E
- 2* 0< Ed1 1i1 xu Ed1
- 2* 0> Ed1 -1i1 xu -Ed1
- 2* 0< Ei1 1d6 xu Ed3
- 2* > Ed2 1d4 xu Ed3
- 2* 0< Ed4 1i1 xu Ed4
- 2* 0< Ei1 1d2 xu Ed1
- ! Underflow, unless detected as accuracy
- ! loss due to denormalization.
- 2* >= Ed2 1i1 xv Ed1
- 2* <= Ed2 -1i1 xv -Ed1
- 2* >= Ed8 1i1 xv Ed7
- 2* <= -Ed9 1i1 xv -Ed8
- 2* <= Ed8 -1i1 xv -Ed7
- 2* => Ei1 1d6 xv Ed2
- 2* <=0 Ed2 1d4 xv Ed4
- ! Underflow, only if tininess is detected
- ! before rounding.
- 2* >= Ed1 1i1 xw E
- 2* <= -Ed1 1i1 xw -E
- 2* >= Ed8 1i8 xw E
- 2* <= Ed8 -1i8 xw -E
- 2* >= Ei1 1d2 xw E
- 2* >= Ei2 1d4 xw E
- ! NaN operands.
- 2* ALL Q 0 OK Q
- 2* ALL Q -0 OK Q
- 2* ALL 0 Q OK Q
- 2* ALL -0 Q OK Q
- 2* ALL Q 1 OK Q
- 2* ALL Q -1 OK Q
- 2* ALL 1 Q OK Q
- 2* ALL -1 Q OK Q
- 2* ALL Ed1 Q OK Q
- 2* ALL -Ed1 Q OK Q
- 2* ALL Q Ed1 OK Q
- 2* ALL Q -Ed1 OK Q
- 2* ALL Q 0i1 OK Q
- 2* ALL Q -0i1 OK Q
- 2* ALL 0i1 Q OK Q
- 2* ALL -0i1 Q OK Q
- 2* ALL Q Hd1 OK Q
- 2* ALL Q -Hd1 OK Q
- 2* ALL Hd1 Q OK Q
- 2* ALL -Hd1 Q OK Q
- 2* ALL Q H OK Q
- 2* ALL Q -H OK Q
- 2* ALL H Q OK Q
- 2* ALL -H Q OK Q
- 2* ALL Q Q OK Q
- 2* ALL S 0 i Q
- 2* ALL S -0 i Q
- 2* ALL 0 S i Q
- 2* ALL -0 S i Q
- 2* ALL S 1 i Q
- 2* ALL S -1 i Q
- 2* ALL 1 S i Q
- 2* ALL -1 S i Q
- 2* ALL Ed1 S i Q
- 2* ALL -Ed1 S i Q
- 2* ALL S Ed1 i Q
- 2* ALL S -Ed1 i Q
- 2* ALL S 0i1 i Q
- 2* ALL S -0i1 i Q
- 2* ALL 0i1 S i Q
- 2* ALL -0i1 S i Q
- 2* ALL S Hd1 i Q
- 2* ALL S -Hd1 i Q
- 2* ALL Hd1 S i Q
- 2* ALL -Hd1 S i Q
- 2* ALL S H i Q
- 2* ALL S -H i Q
- 2* ALL H S i Q
- 2* ALL -H S i Q
- 2* ALL Q S i Q
- 2* ALL S Q i Q
- 2* ALL S S i Q
- !
- ! Negate test vectors:
- !
- 2~ ALL 1 0 OK -1
- 2~ ALL -1 0 OK 1
- 2~ ALL Ed1 0 OK -Ed1
- 2~ ALL -Ed1 0 OK Ed1
- 2~ ALL 0i1 0 OK -0i1
- 2~ ALL -0i1 0 OK 0i1
- 2~ ALL Hm1 0 OK -Hm1
- 2~ ALL -Hm1 0 OK Hm1
- 2~ ALL Hd1 0 OK -Hd1
- 2~ ALL -Hd1 0 OK Hd1
- 2~ ALL H 0 OK -H
- 2~ ALL -H 0 OK H
- 2~ ALL 0 0 OK -0
- 2~ ALL -0 0 OK 0
- ! NaNs -- FPTEST checks only that
- ! NaNs are produced and with no exceptions.
- 2~ ALL -Q 0 OK Q
- 2~ ALL Q 0 OK -Q
- 2~ ALL -S 0 OK S
- 2~ ALL S 0 OK -S
- !
- ! Nextafter Test Vectors:
- !
- ! From 1.
- 2N ALL 1 2 OK 1i1
- 2N ALL 1 0 OK 1d1
- 2N ALL 1 -0 OK 1d1
- 2N ALL 1 1i1 OK 1i1
- 2N ALL 1 1d1 OK 1d1
- 2N ALL 1 Hm1 OK 1i1
- 2N ALL 1 Hd1 OK 1i1
- 2N ALL 1 1 OK 1
- 2N ALL 1 -Hd1 OK 1d1
- 2N ALL 1 E OK 1d1
- 2N ALL 1 Ed1 OK 1d1
- 2N ALL 1 0i1 OK 1d1
- 2N ALL 1 -1 OK 1d1
- 2N ALL 1 -H OK 1d1
- 2N ALL 1 H OK 1i1
- ! From -1.
- 2N ALL -1 -2 OK -1i1
- 2N ALL -1 0 OK -1d1
- 2N ALL -1 -0 OK -1d1
- 2N ALL -1 -1i1 OK -1i1
- 2N ALL -1 -1d1 OK -1d1
- 2N ALL -1 Hm1 OK -1d1
- 2N ALL -1 Hd1 OK -1d1
- 2N ALL -1 1 OK -1d1
- 2N ALL -1 -Hd1 OK -1i1
- 2N ALL -1 E OK -1d1
- 2N ALL -1 Ed1 OK -1d1
- 2N ALL -1 0i1 OK -1d1
- 2N ALL -1 -1 OK -1
- 2N ALL -1 H OK -1d1
- 2N ALL -1 -H OK -1i1
- ! From 1 + 1ulp of 1.
- 2N ALL 1i1 2 OK 1i2
- 2N ALL 1i1 0 OK 1
- 2N ALL 1i1 1i2 OK 1i2
- 2N ALL 1i1 1 OK 1
- 2N ALL 1i1 Hm1 OK 1i2
- 2N ALL 1i1 Hd1 OK 1i2
- 2N ALL 1i1 -1i1 OK 1
- 2N ALL 1i1 -Hd1 OK 1
- 2N ALL 1i1 E OK 1
- 2N ALL 1i1 Ed1 OK 1
- 2N ALL 1i1 0i1 OK 1
- 2N ALL 1i1 1i1 OK 1i1
- 2N ALL 1i1 H OK 1i2
- 2N ALL 1i1 -H OK 1
- ! From 1 - 1ulp- of 1.
- 2N ALL 1d1 2 OK 1
- 2N ALL 1d1 0 OK 1d2
- 2N ALL 1d1 1 OK 1
- 2N ALL 1d1 1d2 OK 1d2
- 2N ALL 1d1 Hm1 OK 1
- 2N ALL 1d1 Hd1 OK 1
- 2N ALL 1d1 -1d1 OK 1d2
- 2N ALL 1d1 -Hd1 OK 1d2
- 2N ALL 1d1 E OK 1d2
- 2N ALL 1d1 Ed1 OK 1d2
- 2N ALL 1d1 0i1 OK 1d2
- 2N ALL 1d1 1d1 OK 1d1
- 2N ALL 1d1 H OK 1
- 2N ALL 1d1 -H OK 1d2
- ! From largest power of 2.
- 2N ALL Hm1 Hm2 OK Hm1d1
- 2N ALL Hm1 0 OK Hm1d1
- 2N ALL Hm1 Hm1d1 OK Hm1d1
- 2N ALL Hm1 Hm1 OK Hm1
- 2N ALL Hm1 Hd1 OK Hm1i1
- 2N ALL Hm1 -Hm1 OK Hm1d1
- 2N ALL Hm1 -Hd1 OK Hm1d1
- 2N ALL Hm1 E OK Hm1d1
- 2N ALL Hm1 Ed1 OK Hm1d1
- 2N ALL Hm1 0i1 OK Hm1d1
- 2N ALL Hm1 H OK Hm1i1
- 2N ALL Hm1 -H OK Hm1d1
- ! From largest number.
- 2N ALL Hd1 Hm1 OK Hd2
- 2N ALL Hd1 0 OK Hd2
- 2N ALL Hd1 -0 OK Hd2
- 2N ALL Hd1 Hd2 OK Hd2
- 2N ALL Hd1 Hd1 OK Hd1
- 2N ALL Hd1 -Hd1 OK Hd2
- 2N ALL Hd1 E OK Hd2
- 2N ALL Hd1 Ed1 OK Hd2
- 2N ALL Hd1 0i1 OK Hd2
- 2N ALL Hd1 H ox H
- 2N ALL Hd1 -H OK Hd2
- 2N ALL -Hd1 -H ox -H
- 2N ALL -Hd1 H OK -Hd2
- ! From smallest normalized number.
- 2N ALL E 2 OK Ei1
- 2N ALL E 0 xu Ed1
- 2N ALL E -0 xu Ed1
- 2N ALL E Ei1 OK Ei1
- 2N ALL E Ed1 xu Ed1
- 2N ALL E Hm1 OK Ei1
- 2N ALL E Hd1 OK Ei1
- 2N ALL E -E xu Ed1
- 2N ALL E -Hd1 xu Ed1
- 2N ALL E E OK E
- 2N ALL E 0i1 xu Ed1
- 2N ALL E H OK Ei1
- 2N ALL E -H xu Ed1
- ! From largest denormalized number.
- 2N ALL Ed1 2 OK E
- 2N ALL Ed1 0 xu Ed2
- 2N ALL Ed1 E OK E
- 2N ALL Ed1 Ed2 xu Ed2
- 2N ALL Ed1 Hm1 OK E
- 2N ALL Ed1 Hd1 OK E
- 2N ALL Ed1 -Ed1 xu Ed2
- 2N ALL Ed1 -Hd1 xu Ed2
- 2N ALL Ed1 Ed1 OK Ed1
- 2N ALL Ed1 0i1 xu Ed2
- 2N ALL Ed1 H OK E
- 2N ALL Ed1 -H xu Ed2
- 2N ALL -Ed1 -2 OK -E
- 2N ALL -Ed1 -0 xu -Ed2
- 2N ALL -Ed1 -E OK -E
- 2N ALL -Ed1 -Ed2 xu -Ed2
- 2N ALL -Ed1 -Hm1 OK -E
- 2N ALL -Ed1 -Hd1 OK -E
- 2N ALL -Ed1 Ed1 xu -Ed2
- 2N ALL -Ed1 Hd1 xu -Ed2
- 2N ALL -Ed1 -Ed1 OK -Ed1
- 2N ALL -Ed1 -0i1 xu -Ed2
- 2N ALL -Ed1 -H OK -E
- 2N ALL -Ed1 H xu -Ed2
- ! From smallest denormalized number.
- 2N ALL 0i1 2 xu 0i2
- 2N ALL 0i1 0 xu 0
- 2N ALL 0i1 0i2 xu 0i2
- 2N ALL 0i1 Hm1 xu 0i2
- 2N ALL -0i1 -0 xu -0
- 2N ALL -0i1 -0i2 xu -0i2
- 2N ALL -0i1 -Hm1 xu -0i2
- 2N ALL 0i1 Hd1 xu 0i2
- 2N ALL 0i1 0 xu 0
- 2N ALL 0i1 -0 xu 0
- 2N ALL -0i1 -0 xu -0
- 2N ALL -0i1 0 xu -0
- 2N ALL 0i1 -Hd1 xu 0
- 2N ALL 0i1 E xu 0i2
- 2N ALL 0i1 Ed1 xu 0i2
- 2N ALL 0i1 0i1 OK 0i1
- 2N ALL 0i1 H xu 0i2
- 2N ALL 0i1 -H xu 0
- ! From 0.
- 2N ALL 0 2 xu 0i1
- 2N ALL 0 0 OK 0
- 2N ALL 0 -0 OK 0
- 2N ALL 0 0i1 xu 0i1
- 2N ALL 0 -0i1 xu -0i1
- 2N ALL 0 Hm1 xu 0i1
- 2N ALL 0 Hd1 xu 0i1
- 2N ALL 0 -Hd1 xu -0i1
- 2N ALL 0 E xu 0i1
- 2N ALL 0 Ed1 xu 0i1
- 2N ALL 0 H xu 0i1
- 2N ALL 0 -H xu -0i1
- ! From -0.
- 2N ALL -0 2 xu 0i1
- 2N ALL -0 -0 OK -0
- 2N ALL -0 0 OK -0
- 2N ALL -0 0i1 xu 0i1
- 2N ALL -0 -0i1 xu -0i1
- 2N ALL -0 Hm1 xu 0i1
- 2N ALL -0 Hd1 xu 0i1
- 2N ALL -0 -Hd1 xu -0i1
- 2N ALL -0 E xu 0i1
- 2N ALL -0 Ed1 xu 0i1
- 2N ALL -0 H xu 0i1
- 2N ALL -0 -H xu -0i1
- ! From infinity.
- 2N ALL H 2 OK Hd1
- 2N ALL H 0 OK Hd1
- 2N ALL H -0 OK Hd1
- 2N ALL H Hm1 OK Hd1
- 2N ALL H Hd1 OK Hd1
- 2N ALL H -Hd1 OK Hd1
- 2N ALL H E OK Hd1
- 2N ALL H Ed1 OK Hd1
- 2N ALL H 0i1 OK Hd1
- 2N ALL H H OK H
- 2N ALL H -H OK Hd1
- 2N ALL -H 2 OK -Hd1
- 2N ALL -H 0 OK -Hd1
- 2N ALL -H -0 OK -Hd1
- 2N ALL -H -Hm1 OK -Hd1
- 2N ALL -H -Hd1 OK -Hd1
- 2N ALL -H Hd1 OK -Hd1
- 2N ALL -H -E OK -Hd1
- 2N ALL -H -Ed1 OK -Hd1
- 2N ALL -H -0i1 OK -Hd1
- 2N ALL -H H OK -Hd1
- 2N ALL -H -H OK -H
- ! Next-afters.
- 2N ALL Q 0 OK Q
- 2N ALL Q -0 OK Q
- 2N ALL 0 Q OK Q
- 2N ALL -0 Q OK Q
- 2N ALL Q 1 OK Q
- 2N ALL Q -1 OK Q
- 2N ALL 1 Q OK Q
- 2N ALL -1 Q OK Q
- 2N ALL Ed1 Q OK Q
- 2N ALL -Ed1 Q OK Q
- 2N ALL Q Ed1 OK Q
- 2N ALL Q -Ed1 OK Q
- 2N ALL Q 0i1 OK Q
- 2N ALL Q -0i1 OK Q
- 2N ALL 0i1 Q OK Q
- 2N ALL -0i1 Q OK Q
- 2N ALL Q Hd1 OK Q
- 2N ALL Q -Hd1 OK Q
- 2N ALL Hd1 Q OK Q
- 2N ALL -Hd1 Q OK Q
- 2N ALL Q H OK Q
- 2N ALL Q -H OK Q
- 2N ALL H Q OK Q
- 2N ALL -H Q OK Q
- 2N ALL Q Q OK Q
- 2N ALL S 0 i Q
- 2N ALL S -0 i Q
- 2N ALL 0 S i Q
- 2N ALL -0 S i Q
- 2N ALL S 1 i Q
- 2N ALL S -1 i Q
- 2N ALL 1 S i Q
- 2N ALL -1 S i Q
- 2N ALL Ed1 S i Q
- 2N ALL -Ed1 S i Q
- 2N ALL S Ed1 i Q
- 2N ALL S -Ed1 i Q
- 2N ALL S 0i1 i Q
- 2N ALL S -0i1 i Q
- 2N ALL 0i1 S i Q
- 2N ALL -0i1 S i Q
- 2N ALL S Hd1 i Q
- 2N ALL S -Hd1 i Q
- 2N ALL Hd1 S i Q
- 2N ALL -Hd1 S i Q
- 2N ALL S H i Q
- 2N ALL S -H i Q
- 2N ALL H S i Q
- 2N ALL -H S i Q
- 2N ALL Q S i Q
- 2N ALL S Q i Q
- 2N ALL S S i Q
- ! Exact cases.
- 2I ALL 1 0 OK 1
- 2I ALL Hd1 0 OK Hd1
- 2I ALL -1 0 OK -1
- 2I ALL -Hd1 0 OK -Hd1
- 2I ALL 9p9 0 OK 9p9
- 2I ALL -9p9 0 OK -9p9
- 2I ALL 0 0 OK 0
- 2I ALL -0 0 OK -0
- 2I ALL Hm9 0 OK Hm9
- 2I ALL Hm9d1 0 OK Hm9d1
- 2I ALL Hm9d9 0 OK Hm9d9
- 2I ALL Hm9d9d9 0 OK Hm9d9d9
- 2I ALL -Hm9 0 OK -Hm9
- 2I ALL -Hm9d1 0 OK -Hm9d1
- 2I ALL -Hm9d9 0 OK -Hm9d9
- 2I ALL -Hm9d9d9 0 OK -Hm9d9d9
- ! Infinities.
- 2I ALL H 0 OK H
- 2I ALL -H 0 OK -H
- ! Inexact cases.
- 2I =0< 1i1 0 x 1
- 2I > 1i1 0 x 2
- 2I => 1d1 0 x 1
- 2I 0< 1d1 0 x 0
- 2I =< -1d1 0 x -1
- 2I 0> -1d1 0 x -0
- 2I =0> -1i1 0 x -1
- 2I < -1i1 0 x -2
- 2I > E 0 x 1
- 2I =0< E 0 x 0
- 2I < -E 0 x -1
- 2I =0> -E 0 x -0
- 2I > Ed1 0 x 1
- 2I =0< Ed1 0 x 0
- 2I < -Ed1 0 x -1
- 2I =0> -Ed1 0 x -0
- 2I =0< 0i1 0 x 0
- 2I > 0i1 0 x 1
- 2I =0> -0i1 0 x -0
- 2I < -0i1 0 x -1
- 2I > 8i1 0 x 9
- 2I 0=< 8i1 0 x 8
- 2I < -8i1 0 x -9
- 2I 0=> -8i1 0 x -8
- 2I => 8d1 0 x 8
- 2I 0< 8d1 0 x 7
- 2I =< -8d1 0 x -8
- 2I 0> -8d1 0 x -7
- 2I => 1p9d8 0 x 1p9
- 2I =< -1p9d8 0 x -1p9
- 2I => 1p9p9d1 0 x 1p9p9
- 2I =< -1p9p9d1 0 x -1p9p9
- 2I =<0 1p9i8 0 x 1p9
- 2I =>0 -1p9i8 0 x -1p9
- 2I =<0 1p9p9i1 0 x 1p9p9
- 2I =>0 -1p9p9i1 0 x -1p9p9
- ! Half-way cases.
- 2I > 1m1 0 x 1
- 2I =0< 1m1 0 x 0
- 2I < -1m1 0 x -1
- 2I =0> -1m1 0 x -0
- 2I >= 3m1 0 x 2
- 2I <0 3m1 0 x 1
- 2I >0 -3m1 0 x -1
- 2I =< -3m1 0 x -2
- 2I > 9m1 0 x 5
- 2I =0< 9m1 0 x 4
- 2I < -9m1 0 x -5
- 2I =0> -9m1 0 x -4
- 2I = 1m1i1 0 x 1
- 2I = -1m1i1 0 x -1
- 2I = 3m1d1 0 x 1
- 2I = -3m1d1 0 x -1
- 2I = 9m1i1 0 x 5
- 2I = -9m1i1 0 x -5
- ! NAN operand.
- 2I ALL Q 0 OK Q
- 2I ALL S 0 i Q
- ! Scalb test vectors. Those with
- ! 2nd arguments that overflow
- ! the integer format are commented
- ! out, since the response to
- ! floating->integer conversion on
- ! overflow is system-dependent
- !
- ! Warm ups.
- 2S ALL 1 1 OK 2
- 2S ALL -1 1 OK -2
- 2S ALL 1 -1 OK 1m1
- 2S ALL -1 -1 OK -1m1
- 2S ALL 1 3 OK 8
- 2S ALL 1 -3 OK 1m3
- 2S ALL 9 9 OK 9p9
- 2S ALL 9 -9 OK 9m9
- 2S ALL 7 8 OK 7p8
- 2S ALL -7 -8 OK -7m8
- 2S ALL 5 0 OK 5
- 2S ALL 5 -0 OK 5
- 2S ALL -5 -0 OK -5
- ! Big numbers.
- 2S ALL Hm1 -8 OK Hm9
- 2S ALL Hm9 8 OK Hm1
- 2S ALL Hd1 -9 OK Hd1m9
- 2S ALL Hd1m9 9 OK Hd1
- 2S ALL -Hd1 -9 OK -Hd1m9
- 2S ALL -Hd1m9 9 OK -Hd1
- 2S ALL Hd1 0 OK Hd1
- 2S ALL Hd1 -0 OK Hd1
- ! Overflows.
- 2S >= Hm1 1 xo H
- 2S <= -Hm1 1 xo -H
- 2S s>= 1 1p7 xo H
- 2S s<= -1 1p7 xo -H
- ! 2S >= 1 Hm9 xo H
- 2S ds>= 1 1p9p5 xo H
- ! 2S >= 1 Hd1 xo H
- 2S ds<= -1 1p9p5 xo -H
- ! 2S <= -1 Hd1 xo -H
- ! 2S >= 1m9 Hm9 xo H
- 2S >= Hd1 1 xo H
- 2S >= Hm9 9 xo H
- 2S ds>= E 1p9p5 xo H
- 2S ds>= Ed1 1p9p5 xo H
- 2S ds>= 0i1 1p9p5 xo H
- 2S ds<= -0i1 1p9p5 xo -H
- ! 2S >= E Hm1 xo H
- ! 2S >= Ed1 Hm1 xo H
- ! 2S >= 0i1 Hm1 xo H
- ! 2S <= -0i1 Hm1 xo -H
- 2S <0 Hm1 1 xo Hd1
- 2S >0 -Hm1 1 xo -Hd1
- 2S s<0 1 1p7 xo Hd1
- 2S s>0 -1 1p7 xo -Hd1
- ! 2S <0 1 Hm9 xo Hd1
- 2S ds<0 1 1p9p5 xo Hd1
- ! 2S <0 1 Hd1 xo Hd1
- 2S ds>0 -1 1p9p5 xo -Hd1
- ! 2S >0 -1 Hd1 xo -Hd1
- ! 2S <0 1m9 Hm9 xo Hd1
- 2S <0 Hd1 1 xo Hd1
- 2S <0 Hm9 9 xo Hd1
- 2S ds<0 E 1p9p5 xo Hd1
- 2S ds<0 Ed1 1p9p5 xo Hd1
- 2S ds<0 0i1 1p9p5 xo Hd1
- 2S ds>0 -0i1 1p9p5 xo -Hd1
- ! 2S <0 E Hm1 xo Hd1
- ! 2S <0 Ed1 Hm1 xo Hd1
- ! 2S <0 0i1 Hm1 xo Hd1
- ! 2S >0 -0i1 Hm1 xo -Hd1
- ! Tiny operand.
- 2S s E 1p7 OK 4
- 2S s Ed1 1p7 OK 1d2p2
- 2S s -Ed1 1p7 OK -1d2p2
- 2S d E 1p7p3 OK 4
- 2S d Ed1 1p7p3 OK 1d2p2
- 2S d -Ed1 1p7p3 OK -1d2p2
- 2S ALL 0i1 1 OK 0i2
- 2S ALL -0i1 1 OK -0i2
- 2S ALL 0i2 -1 OK 0i1
- 2S ALL 0i1 3 OK 0i8
- 2S ALL 0i8 -3 OK 0i1
- 2S ALL Ed1 1 OK Ep1d2
- 2S ALL Ep1d2 -1 OK Ed1
- 2S ALL Ed1 0 OK Ed1
- 2S ALL Ed1 -0 OK Ed1
- ! Underflows.
- 2S <=0 0i1 -1 xu 0
- 2S > 0i1 -1 xu 0i1
- 2S >=0 -0i1 -1 xu -0
- 2S < -0i1 -1 xu -0i1
- 2S <0 0i3 -2 xu 0
- 2S => 0i3 -2 xu 0i1
- 2S <=0 0i9 -3 xu 0i1
- 2S > 0i9 -3 xu 0i2
- 2S => 0i3 -1 xu 0i2
- 2S 0< 0i3 -1 xu 0i1
- 2S >= Ep1d1 -1 xu E
- 2S 0< Ep1d1 -1 xu Ed1
- 2S >= Ep9d1 -9 xu E
- 2S 0< Ep9d1 -9 xu Ed1
- 2S <=0ds 1 -1p9p5 xu 0
- 2S >ds 1 -1p9p5 xu 0i1
- ! 2S <=0 1 -Hm1 xu 0
- ! 2S > 1 -Hm1 xu 0i1
- 2S <= -Ep9d1 -9 xu -E
- 2S 0> -Ep9d1 -9 xu -Ed1
- 2S >=0ds -1 -1p9p5 xu -0
- 2S <ds -1 -1p9p5 xu -0i1
- 2S <=0ds E -1p9p5 xu 0
- 2S >ds E -1p9p5 xu 0i1
- 2S <=0ds 0i1 -1p9p5 xu 0
- 2S >ds 0i1 -1p9p5 xu 0i1
- 2S >=0ds -0i1 -1p9p5 xu -0
- 2S <ds -0i1 -1p9p5 xu -0i1
- ! 2S >=0 -1 -Hm1 xu -0
- ! 2S < -1 -Hm1 xu -0i1
- ! 2S <=0 E -Hm1 xu 0
- ! 2S > E -Hm1 xu 0i1
- ! 2S <=0 0i1 -Hd1 xu 0
- ! 2S > 0i1 -Hd1 xu 0i1
- ! 2S >=0 -0i1 -Hd1 xu -0
- ! 2S < -0i1 -Hd1 xu -0i1
- ! Infinity operands.
- 2S ALL H 0 OK H
- 2S ALL H -0 OK H
- 2S ALL -H 0 OK -H
- 2S ALL -H -0 OK -H
- 2S ALL H 1 OK H
- 2S ALL H 1p9p5 OK H
- 2S ALL H -1p9p5 OK H
- 2S ALL -H 1p9p5 OK -H
- 2S ALL -H -1p9p5 OK -H
- ! 2S ALL H Hd1 OK H
- ! 2S ALL H -Hd1 OK H
- ! 2S ALL -H Hd1 OK -H
- ! 2S ALL -H -Hd1 OK -H
- ! 2S ALL 1 H OK H
- ! 2S ALL Hd1 H OK H
- ! 2S ALL 0i1 H OK H
- ! 2S ALL H H OK H
- ! 2S ALL -H H OK -H
- ! 2S ALL H -H i Q
- ! 2S ALL 0 H i Q
- ! Zeros.
- 2S ALL 0 1 OK 0
- 2S ALL 0 1p9p5 OK 0
- 2S ALL 0 -1p9p5 OK 0
- ! 2S ALL 0 Hd1 OK 0
- ! 2S ALL 0 -Hd1 OK 0
- 2S ALL 0 0 OK 0
- 2S ALL 0 -0 OK 0
- 2S ALL -0 1 OK -0
- ! 2S ALL -0 Hd1 OK -0
- ! 2S ALL -0 -Hd1 OK -0
- 2S ALL -0 -0 OK -0
- 2S ALL -0 0 OK -0
- ! NaNs.
- 2S ALL Q 1 OK Q
- 2S ALL Q 1p9p5 OK Q
- 2S ALL Q -1p9p5 OK Q
- ! 2S ALL Q H OK Q
- ! 2S ALL Q -Hd1 OK Q
- ! 2S ALL Q H OK Q
- ! 2S ALL Q -Hd1 OK Q
- ! 2S ALL Q -H OK Q
- ! 2S ALL Q Hd1 OK Q
- 2S ALL Q 0 OK Q
- ! 2S ALL Q Q OK Q
- ! 2S ALL 1 Q OK Q
- ! 2S ALL H Q OK Q
- ! 2S ALL -H Q OK Q
- ! 2S ALL 0 Q OK Q
- 2S ALL S 1 i Q
- 2S ALL S 1p9p5 i Q
- 2S ALL S -1p9p5 i Q
- 2S ALL S 1p9p5 i Q
- 2S ALL S -1p9p5 i Q
- ! 2S ALL S H i Q
- ! 2S ALL S -Hd1 i Q
- ! 2S ALL S -H i Q
- ! 2S ALL S Hd1 i Q
- 2S ALL S 0 i Q
- ! 2S ALL S S i Q
- ! 2S ALL Q S i Q
- ! 2S ALL S Q i Q
- ! 2S ALL 1 S i Q
- ! 2S ALL H S i Q
- ! 2S ALL -H S i Q
- ! 2S ALL 0 S i Q
- ! First a few trivial cases...
- 2V ALL 1 0 OK 1
- 2V ALL 4 0 OK 2
- 2V ALL 9 0 OK 3
- 2V ALL 1p8 0 OK 1p4
- 2V ALL 1m8 0 OK 1m4
- 2V ALL 4p6 0 OK 2p3
- 2V ALL 4m6 0 OK 2m3
- 2V ALL 9p8 0 OK 3p4
- 2V ALL 9m8 0 OK 3m4
- 2V ALL 9p9p9 0 OK 3p9
- 2V ALL 9m9m9 0 OK 3m9
- ! And the usual zero business.
- 2V ALL +0 0 OK +0
- 2V ALL -0 0 OK -0
- ! And tests for infinity.
- 2V ALL +H 0 OK +H
- 2V ALL -H 0 i Q
- ! Case: 2^EVEN * (1 + Nulp+) -->
- ! 2^(EVEN/2) *
- ! (1 + (1/2)Nulp+ -
- ! (1/8)(Nulp+)^2 + tiny)
- ! 1 + 1ulp --> 1 + 0.5ulp - tiny.
- 2V =0< 1i1 0 x 1
- 2V > 1i1 0 x 1i1
- ! 1 + 2ulp --> 1 + 1ulp - tiny.
- 2V => 1i2 0 x 1i1
- 2V 0< 1i2 0 x 1
- ! 1 + 3ulp --> 1 + 1.5ulp - tiny.
- 2V =0< 1i3 0 x 1i1
- 2V > 1i3 0 x 1i2
- ! 1 + 4ulp --> 1 + 2ulp - tiny.
- 2V => 1i4 0 x 1i2
- 2V 0< 1i4 0 x 1i1
- ! (1 + 5ulp) --> 1 + 2.5ulp - ...
- 2V =0< 1i5 0 x 1i2
- 2V > 1i5 0 x 1i3
- ! (1 + 6ulp) --> 1 + 3ulp - ...
- 2V => 1i6 0 x 1i3
- 2V 0< 1i6 0 x 1i2
- ! (1+7ulp) --> 1 + 3.5ulp - ...
- 2V =0< 1i7 0 x 1i3
- 2V > 1i7 0 x 1i4
- ! sqrt(1 - Nulp-) -->
- ! 1 - (1/2)Nulp- -
- ! (1/8)(Nulp-)^2 - tiny
- ! 1 - 1ulp- -->
- ! 1 - 0.5ulp- - tiny.
- 2V =0< 1d1 0 x 1d1
- 2V > 1d1 0 x 1
- ! 1 - 2ulp- -->
- ! 1 - 1ulp- - tiny.
- 2V => 1d2 0 x 1d1
- 2V 0< 1d2 0 x 1d2
- ! 1 - 3ulp- -->
- ! 1 - 1.5ulp- - tiny.
- 2V =0< 1d3 0 x 1d2
- 2V > 1d3 0 x 1d1
- ! 1 - 4ulp- -->
- ! 1 - 2ulp- - tiny.
- 2V => 1d4 0 x 1d2
- 2V 0< 1d4 0 x 1d3
- ! 1 - 5ulp- -->
- ! 1 - 2.5ulp- - tiny.
- 2V =0< 1d5 0 x 1d3
- 2V > 1d5 0 x 1d2
- ! 1 - 6ulp- -->
- ! 1 - 3ulp- - tiny.
- 2V => 1d6 0 x 1d3
- 2V 0< 1d6 0 x 1d4
- ! 1 - 7ulp- -->
- ! 1 - 3.5ulp- - tiny.
- 2V =0< 1d7 0 x 1d4
- 2V > 1d7 0 x 1d3
- ! 1 - 8ulp- -->
- ! 1 - 4ulp- - tiny.
- 2V => 1d8 0 x 1d4
- 2V 0< 1d8 0 x 1d5
- ! 1 - 9ulp- -->
- ! 1 - 4.5ulp- - tiny.
- 2V =0< 1d9 0 x 1d5
- 2V > 1d9 0 x 1d4
- ! Invalid negative cases.
- 2V ALL -1 0 i Q
- 2V ALL -2i2 0 i Q
- 2V ALL -3i4 0 i Q
- 2V ALL -4d5 0 i Q
- 2V ALL -1u1 0 i Q
- 2V ALL -1u2 0 i Q
- 2V ALL -1u3 0 i Q
- 2V ALL -Hm1i2 0 i Q
- 2V ALL -Hm2i2 0 i Q
- 2V ALL -Hm1d1 0 i Q
- 2V ALL -Hm2d4 0 i Q
- 2V ALL -Ep1i1 0 i Q
- 2V ALL -Ep1d3 0 i Q
- 2V ALL -Ep1 0 i Q
- 2V ALL -Ep1 0 i Q
- 2V ALL -Ed4 0 i Q
- 2V ALL -Ed3 0 i Q
- 2V ALL -Ed2 0 i Q
- 2V ALL -Ed1 0 i Q
- 2V ALL -Ed4 0 i Q
- 2V ALL -Ed3 0 i Q
- 2V ALL -Ed7 0 i Q
- 2V ALL -Ed9 0 i Q
- 2V ALL -0i1 0 i Q
- 2V ALL -0i1 0 i Q
- 2V ALL -0i9 0 i Q
- 2V ALL -0i7 0 i Q
- 2V ALL -0i5 0 i Q
- 2V ALL -0i2 0 i Q
- ! NaN operand.
- 2V ALL Q 0 OK Q
- 2V ALL S 0 i Q
- ! First some easy integer cases.
- 2- ALL 1 -1 OK 2
- 2- ALL 1 -2 OK 3
- 2- ALL 2 -1 OK 3
- 2- ALL 2 -2 OK 4
- 2- =0> 2 2 OK 0
- 2- < 2 2 OK -0
- 2- =0> 5 5 OK 0
- 2- < 5 5 OK -0
- 2- ALL 1 -7 OK 8
- 2- ALL 5 1 OK 4
- 2- ALL 2 5 OK -3
- 2- ALL 5 0 OK 5
- 2- ALL 5 -0 OK 5
- ! Infinity vs Infinity.
- 2- ALL H -H OK H ok - affine sum
- 2- ALL -H H OK -H
- 2- ALL -H -H i Q different signs
- 2- ALL H H i Q
- ! Infinity vs huge.
- 2- ALL H -Hm1 OK H
- 2- ALL H Hm1 OK H
- 2- ALL -H -Hm1 OK -H
- 2- ALL -H Hm1 OK -H
- 2- ALL Hm1 -H OK H
- 2- ALL Hm1 H OK -H
- 2- ALL -Hm1 -H OK H
- 2- ALL -Hm1 H OK -H
- ! Infinity vs 0.
- 2- ALL H -0 OK H
- 2- ALL H 0 OK H
- 2- ALL -H -0 OK -H
- 2- ALL -H 0 OK -H
- 2- ALL 0 -H OK H
- 2- ALL -0 -H OK H
- 2- ALL 0 H OK -H
- 2- ALL -0 H OK -H
- ! Infinity vs denormalized.
- 2- ALL H -Ed1 OK H
- 2- ALL -H -Ed1 OK -H
- 2- ALL H Ed1 OK H
- 2- ALL -H Ed1 OK -H
- 2- ALL 0i3 -H OK H
- 2- ALL 0i3 H OK -H
- 2- ALL -0i3 -H OK H
- 2- ALL -0i3 H OK -H
- ! Zero vs finite -- watch that sign of
- ! 0 is meaningless.
- 2- ALL 0 -Hm1 OK Hm1
- 2- ALL -0 -Hm1 OK Hm1
- 2- ALL -Hm1 -0 OK -Hm1
- 2- ALL -Hm1 0 OK -Hm1
- 2- ALL 1 0 OK 1
- 2- ALL -1 0 OK -1
- 2- ALL 0 -1 OK 1
- 2- ALL -0 1 OK -1
- ! Zero vs denormalized -- underflows.
- 2- ALL 0 -Ed1 OK Ed1
- 2- ALL -0 -Ed1 OK Ed1
- 2- ALL 0 Ed1 OK -Ed1
- 2- ALL -0 Ed1 OK -Ed1
- 2- ALL 0i3 -0 OK 0i3
- 2- ALL 0i3 0 OK 0i3
- 2- ALL -0i3 -0 OK -0i3
- 2- ALL -0i3 0 OK -0i3
- ! Zero vs tiny -- just in case.
- 2- ALL -0 E OK -E
- 2- ALL E -0 OK E
- 2- ALL 0 E OK -E
- 2- ALL -E -0 OK -E
- ! Zero vs Zero -- watch signs and
- ! rounding modes.
- 2- =0> 0 0 OK 0
- 2- =0> -0 -0 OK 0
- 2- < 0 0 OK -0
- 2- < -0 -0 OK -0
- 2- ALL 0 -0 OK 0
- 2- ALL -0 0 OK -0
- ! Double a number -- may overflow so
- ! watch rounding mode.
- 2- => Hm1 -Hm1 xo H
- 2- 0< Hm1 -Hm1 xo Hd1
- 2- =< -Hm1 Hm1 xo -H
- 2- 0> -Hm1 Hm1 xo -Hd1
- 2- ALL Hm1d2 -Hm1d2 OK Hd2
- 2- ALL -Hm1d2 Hm1d2 OK -Hd2
- 2- => Hd2 -Hd2 xo H
- 2- 0< Hd2 -Hd2 xo Hd1
- 2- =< -Hd2 Hd2 xo -H
- 2- 0> -Hd2 Hd2 xo -Hd1
- ! Double an innocent number.
- 2- ALL 1 -1 OK 2
- 2- ALL 3 -3 OK 6
- 2- ALL E -E OK Ep1
- 2- ALL Hm2 -Hm2 OK Hm1
- ! Double a tiny number -- may underflow.
- 2- ALL Ed1 -Ed1 OK Ep1d2
- 2- ALL -Ed1 Ed1 OK -Ep1d2
- 2- ALL 0i4 -0i4 OK 0i8
- 2- ALL -0i4 0i4 OK -0i8
- 2- ALL 0i1 -0i1 OK 0i2
- 2- ALL -0i1 0i1 OK -0i2
- ! Cancellation to 0 -- to plus 0.
- 2- =0> Hm1 Hm1 OK 0
- 2- =0> -Hm1d2 -Hm1d2 OK 0
- 2- =0> 1 1 OK 0
- 2- =0> -3 -3 OK 0
- 2- =0> E E OK 0
- 2- =0> -E -E OK 0
- 2- =0> Ed4 Ed4 OK 0
- 2- =0> -Ed1 -Ed1 OK 0 no underflow
- 2- =0> 0i1 0i1 OK 0
- 2- =0> -0i1 -0i1 OK 0
- 2- =0> Hd1 Hd1 OK 0
- ! Cancellation to 0 -- to minus 0.
- 2- < Hm1 Hm1 OK -0
- 2- < -Hm1d2 -Hm1d2 OK -0
- 2- < 1 1 OK -0
- 2- < -3 -3 OK -0
- 2- < E E OK -0
- 2- < -E -E OK -0
- 2- < Ed4 Ed4 OK -0
- 2- < -Ed1 -Ed1 OK -0 no underflow
- 2- < 0i1 0i1 OK -0
- 2- < -0i1 -0i1 OK -0
- 2- < Hd1 Hd1 OK -0
- ! Cancel forcing normalization of LSB
- ! (no rounding errors). Difference is in
- ! last place of larger number.
- ! Medium numbers...
- 2- ALL 1i1 1 OK 1u1
- 2- ALL -1i1 -1 OK -1u1
- 2- ALL 1i1 1i2 OK -1u1
- 2- ALL -1i1 -1i2 OK 1u1
- 2- ALL 2 2i1 OK -2u1
- 2- ALL -2 -2i1 OK 2u1
- 2- ALL 2i4 2i3 OK 2u1
- 2- ALL -2i4 -2i3 OK -2u1
- 2- ALL 4d1 4d2 OK 3u1
- 2- ALL -4d1 -4d2 OK -3u1
- 2- ALL 2d4 2d3 OK -1u1
- 2- ALL -2d4 -2d3 OK 1u1
- ! Huge numbers...
- 2- ALL Hm1i1 Hm1 OK Hm1u1
- 2- ALL -Hm1i1 -Hm1 OK -Hm1u1
- 2- ALL Hm1i1 Hm1i2 OK -Hm1u1
- 2- ALL -Hm1i1 -Hm1i2 OK Hm1u1
- 2- ALL Hm2 Hm2i1 OK -Hm2u1
- 2- ALL -Hm2 -Hm2i1 OK Hm2u1
- 2- ALL Hm2i4 Hm2i3 OK Hm2u1
- 2- ALL -Hm2i4 -Hm2i3 OK -Hm2u1
- 2- ALL Hm2d1 Hm2d2 OK Hm3u1
- 2- ALL -Hm2d1 -Hm2d2 OK -Hm3u1
- 2- ALL -Hd2 -Hd1 OK Hd1u1
- 2- ALL Hd2 Hd1 OK -Hd1u1
- ! Tiny numbers...
- 2- ALL -Ei1 -E OK -Eu1
- 2- ALL Ei1 E OK Eu1
- 2- ALL -Ed1 -E OK Eu1
- 2- ALL Ed1 E OK -Eu1
- 2- ALL Ei1 Ei2 OK -Eu1
- 2- ALL -Ei1 -Ei2 OK Eu1
- 2- ALL Ed1 Ed2 OK Eu1
- 2- ALL -Ed1 -Ed2 OK -Eu1
- 2- ALL Ed3 Ed2 OK -Eu1
- 2- ALL -Ed3 -Ed2 OK Eu1
- 2- ALL 0i2 0i1 OK Eu1
- 2- ALL -0i2 -0i1 OK -Eu1
- 2- ALL 0i3 0i2 OK Eu1
- 2- ALL -0i3 -0i2 OK -Eu1
- ! Normalize from round bit -- set up tests
- ! so that operands have
- ! exponents differing by 1 unit.
- ! Medium numbers...
- 2- ALL 2 2d1 OK 1u1
- 2- ALL -2 -2d1 OK -1u1
- 2- ALL -2d1 -2 OK 1u1
- 2- ALL 2d1 2 OK -1u1
- 2- ALL 4i1 4d1 OK 3u3
- 2- ALL -4i1 -4d1 OK -3u3
- 2- ALL 4d1 4i2 OK -3u5
- 2- ALL -4d1 -4i2 OK 3u5
- 2- ALL 2i1 1i1 OK 1i1
- 2- ALL -2i1 -1i1 OK -1i1
- 2- ALL 2i2 1i1 OK 1i3
- 2- ALL -2i2 -1i1 OK -1i3
- 2- ALL 2i2 1i3 OK 1i1
- 2- ALL -2i2 -1i3 OK -1i1
- ! Huge numbers...
- 2- ALL Hm2 Hm2d1 OK Hm3u1
- 2- ALL -Hm2 -Hm2d1 OK -Hm3u1
- 2- ALL -Hm1d1 -Hm1 OK Hm2u1
- 2- ALL Hm1d1 Hm1 OK -Hm2u1
- 2- ALL Hm4i1 Hm4d1 OK Hm5u3
- 2- ALL -Hm4i1 -Hm4d1 OK -Hm5u3
- 2- ALL Hm2d1 Hm2i2 OK -Hm3u5
- 2- ALL -Hm2d1 -Hm2i2 OK Hm3u5
- 2- ALL Hm2i1 Hm1i1 OK -Hm2i1
- 2- ALL -Hm2i1 -Hm1i1 OK Hm2i1
- 2- ALL Hm1i2 Hm2i1 OK Hm2i3
- 2- ALL -Hm1i2 -Hm2i1 OK -Hm2i3
- 2- ALL Hm2i2 Hm3i3 OK Hm3i1
- 2- ALL -Hm2i2 -Hm3i3 OK -Hm3i1
- ! Tiny numbers...
- 2- ALL Ep1 Ep1d1 OK Eu1
- 2- ALL -Ep1 -Ep1d1 OK -Eu1
- 2- ALL -Ep1d1 -Ep1 OK Eu1
- 2- ALL Ep1d1 Ep1 OK -Eu1
- 2- ALL Ep1i1 Ep1d1 OK Eu3
- 2- ALL -Ep1i1 -Ep1d1 OK -Eu3
- 2- ALL Ep2 Ep2d1 OK Eu2
- 2- ALL -Ep2 -Ep2d1 OK -Eu2
- 2- ALL -Ep2d1 -Ep2 OK Eu2
- 2- ALL Ep2d1 Ep2 OK -Eu2
- 2- ALL Ep2i1 Ep2d1 OK Eu6
- 2- ALL -Ep2i1 -Ep2d1 OK -Eu6
- 2- ALL Ep1d1 Ep1i2 OK -Eu5
- 2- ALL -Ep1d1 -Ep1i2 OK Eu5
- 2- ALL Ep1d1 Ep1i4 OK -Eu9
- 2- ALL -Ep1d1 -Ep1i4 OK Eu9
- 2- ALL Ep1i1 Ei1 OK Ei1
- 2- ALL -Ep1i1 -Ei1 OK -Ei1
- 2- ALL Ep1i2 Ei1 OK Ei3
- 2- ALL -Ep1i2 -Ei1 OK -Ei3
- 2- ALL Ep2i2 Ep1i3 OK Ep1i1
- 2- ALL -Ep2i2 -Ep1i3 OK -Ep1i1
- ! Add magnitude:
- ! cases where one operand is off in sticky --
- ! rounding perhaps to an overflow.
- ! Huge vs medium.
- 2- =0< Hm1 -1 x Hm1
- 2- > Hm1 -1 x Hm1i1
- 2- =0> -Hm1 1 x -Hm1
- 2- < -Hm1 1 x -Hm1i1
- 2- =0< Hm1d1 -1 x Hm1d1
- 2- > Hm1d1 -1 x Hm1
- 2- =0> -Hm1d1 1 x -Hm1d1
- 2- < -Hm1d1 1 x -Hm1
- 2- =0< Hd1 -1 x Hd1
- 2- > Hd1 -1 xo H signal overflow
- 2- =0> -Hd1 1 x -Hd1
- 2- < -Hd1 1 xo -H
- 2- =0< Hd2 -1 x Hd2
- 2- > Hd2 -1 x Hd1
- 2- =0> -Hd2 1 x -Hd2
- 2- < -Hd2 1 x -Hd1
- ! Huge vs denormal.
- 2- =0< 0i1 -Hm1 x Hm1
- 2- > 0i1 -Hm1 x Hm1i1
- 2- =0> -0i1 Hm1 x -Hm1
- 2- < -0i1 Hm1 x -Hm1i1
- 2- =0< 0i1 -Hm1d1 x Hm1d1
- 2- > 0i1 -Hm1d1 x Hm1
- 2- =0> -0i1 Hm1d1 x -Hm1d1
- 2- < -0i1 Hm1d1 x -Hm1
- 2- =0< 0i1 -Hd1 x Hd1
- 2- > 0i1 -Hd1 xo H signal overflow
- 2- =0> -0i1 Hd1 x -Hd1
- 2- < -0i1 Hd1 xo -H
- 2- =0< 0i1 -Hd2 x Hd2
- 2- > 0i1 -Hd2 x Hd1
- 2- =0> -0i1 Hd2 x -Hd2
- 2- < -0i1 Hd2 x -Hd1
- ! Medium vs denormal.
- 2- =0< 0i1 -1 x 1
- 2- > 0i1 -1 x 1i1
- 2- =0> -0i1 1 x -1
- 2- < -0i1 1 x -1i1
- 2- =0< 0i1 -1d1 x 1d1
- 2- > 0i1 -1d1 x 1
- 2- =0> -0i1 1d1 x -1d1
- 2- < -0i1 1d1 x -1
- 2- =0< 0i1 -2d1 x 2d1
- 2- > 0i1 -2d1 x 2
- 2- =0> -0i1 2d1 x -2d1
- 2- < -0i1 2d1 x -2
- 2- =0< 0i1 -2d2 x 2d2
- 2- > 0i1 -2d2 x 2d1
- 2- =0> -0i1 2d2 x -2d2
- 2- < -0i1 2d2 x -2d1
- !
- ! Magnitude subtract when an operand
- ! is in the sticky bit. The interesting
- ! cases will arise when directed rounding
- ! forces a nonzero cancellation.
- ! Huge and medium.
- 2- => Hm1 1 x Hm1
- 2- 0< Hm1 1 x Hm1d1
- 2- =< -Hm1 -1 x -Hm1
- 2- 0> -Hm1 -1 x -Hm1d1
- 2- => Hm1d1 1 x Hm1d1
- 2- 0< Hm1d1 1 x Hm1d2
- 2- =< -Hm1d1 -1 x -Hm1d1
- 2- 0> -Hm1d1 -1 x -Hm1d2
- 2- => Hd1 1 x Hd1
- 2- 0< Hd1 1 x Hd2
- 2- =< -Hd1 -1 x -Hd1
- 2- 0> -Hd1 -1 x -Hd2
- 2- => Hd2 1 x Hd2
- 2- 0< Hd2 1 x Hd3
- 2- =< -Hd2 -1 x -Hd2
- 2- 0> -Hd2 -1 x -Hd3
- ! Huge and tiny.
- 2- => Hd1 0i1 x Hd1
- 2- 0< Hd1 0i1 x Hd2
- 2- =< -Hd1 -0i1 x -Hd1
- 2- 0> -Hd1 -0i1 x -Hd2
- 2- => -0i3 -Hm1 x Hm1
- 2- 0< -0i3 -Hm1 x Hm1d1
- 2- =< 0i3 Hm1 x -Hm1
- 2- 0> 0i3 Hm1 x -Hm1d1
- ! Medium and tiny.
- 2- => 1d1 0i1 x 1d1
- 2- 0< 1d1 0i1 x 1d2
- 2- =< -2d1 -0i1 x -2d1
- 2- 0> -2d1 -0i1 x -2d2
- 2- => -0i3 -3 x 3
- 2- 0< -0i3 -3 x 3d1
- 2- =< 0i3 5 x -5
- 2- 0> 0i3 5 x -5d1
- ! Add magnitude with difference in LSB so,
- ! except for denorms, round bit is crucial.
- ! Half-way cases arise.
- ! Medium cases.
- 2- =0< 1i1 -1 x 2
- 2- > 1i1 -1 x 2i1
- 2- =0> -1i1 1 x -2
- 2- < -1i1 1 x -2i1
- 2- =0> -2 2i1 x -4
- 2- < -2 2i1 x -4i1
- 2- =0< 2 -2i1 x 4
- 2- > 2 -2i1 x 4i1
- 2- => 1 -1i3 x 2i2
- 2- 0< 1 -1i3 x 2i1
- 2- =< -1 1i3 x -2i2
- 2- 0> -1 1i3 x -2i1
- 2- =< -2i1 2i2 x -4i2
- 2- 0> -2i1 2i2 x -4i1
- 2- => 2i1 -2i2 x 4i2
- 2- 0< 2i1 -2i2 x 4i1
- ! Huge cases.
- 2- => Hd2 -Hd1 xo H
- 2- 0< Hd2 -Hd1 xo Hd1
- 2- =< -Hd2 Hd1 xo -H
- 2- 0> -Hd2 Hd1 xo -Hd1
- 2- => Hm1d1 -Hm1 xo H
- 2- 0< Hm1d1 -Hm1 x Hd1
- 2- =< -Hm1d1 Hm1 xo -H
- 2- 0> -Hm1d1 Hm1 x -Hd1
- 2- => Hm1i1 -Hm1 xo H
- 2- 0< Hm1i1 -Hm1 xo Hd1
- 2- =< -Hm1i1 Hm1 xo -H
- 2- 0> -Hm1i1 Hm1 xo -Hd1
- 2- =0< Hm2i1 -Hm2 x Hm1
- 2- > Hm2i1 -Hm2 x Hm1i1
- 2- =0> -Hm2i1 Hm2 x -Hm1
- 2- < -Hm2i1 Hm2 x -Hm1i1
- 2- =0< Hm1d2 -Hm1d1 x Hd2
- 2- > Hm1d2 -Hm1d1 x Hd1
- 2- =0> -Hm1d2 Hm1d1 x -Hd2
- 2- < -Hm1d2 Hm1d1 x -Hd1
- ! Check rounding.
- 2- > 2 -1u1 x 2i1
- 2- =0< 2 -1u1 x 2
- 2- => 2i1 -1u1 x 2i2
- 2- 0< 2i1 -1u1 x 2i1
- 2- => 4d1 -1u1 x 4
- 2- 0< 4d1 -1u1 x 4d1
- 2- > 4d1 -1u1d1 x 4
- 2- 0=< 4d1 -1u1d1 x 4d1
- 2- =< -4d1 1u1 x -4
- 2- 0> -4d1 1u1 x -4d1
- 2- < -4d1 1u1d1 x -4
- 2- 0=> -4d1 1u1d1 x -4d1
- ! NaN operands.
- 2- ALL Q 0 OK Q
- 2- ALL Q -0 OK Q
- 2- ALL 0 Q OK Q
- 2- ALL -0 Q OK Q
- 2- ALL Q 1 OK Q
- 2- ALL Q -1 OK Q
- 2- ALL 1 Q OK Q
- 2- ALL -1 Q OK Q
- 2- ALL Ed1 Q OK Q
- 2- ALL -Ed1 Q OK Q
- 2- ALL Q Ed1 OK Q
- 2- ALL Q -Ed1 OK Q
- 2- ALL Q 0i1 OK Q
- 2- ALL Q -0i1 OK Q
- 2- ALL 0i1 Q OK Q
- 2- ALL -0i1 Q OK Q
- 2- ALL Q Hd1 OK Q
- 2- ALL Q -Hd1 OK Q
- 2- ALL Hd1 Q OK Q
- 2- ALL -Hd1 Q OK Q
- 2- ALL Q H OK Q
- 2- ALL Q -H OK Q
- 2- ALL H Q OK Q
- 2- ALL -H Q OK Q
- 2- ALL Q Q OK Q
- 2- ALL S 0 i Q
- 2- ALL S -0 i Q
- 2- ALL 0 S i Q
- 2- ALL -0 S i Q
- 2- ALL S 1 i Q
- 2- ALL S -1 i Q
- 2- ALL 1 S i Q
- 2- ALL -1 S i Q
- 2- ALL Ed1 S i Q
- 2- ALL -Ed1 S i Q
- 2- ALL S Ed1 i Q
- 2- ALL S -Ed1 i Q
- 2- ALL S 0i1 i Q
- 2- ALL S -0i1 i Q
- 2- ALL 0i1 S i Q
- 2- ALL -0i1 S i Q
- 2- ALL S Hd1 i Q
- 2- ALL S -Hd1 i Q
- 2- ALL Hd1 S i Q
- 2- ALL -Hd1 S i Q
- 2- ALL S H i Q
- 2- ALL S -H i Q
- 2- ALL H S i Q
- 2- ALL -H S i Q
- 2- ALL Q S i Q
- 2- ALL S Q i Q
- 2- ALL S S i Q
- ! Middle-range numbers.
- 2% ALL 1 2 OK 1
- 2% ALL 1 -2 OK 1
- 2% ALL -1 2 OK -1
- 2% ALL -1 -2 OK -1
- 2% ALL 3 2 OK -1
- 2% ALL 3 -2 OK -1
- 2% ALL -3 2 OK 1
- 2% ALL -3 -2 OK 1
- 2% ALL 2 2 OK 0
- 2% ALL 2 -2 OK 0
- 2% ALL -2 2 OK -0
- 2% ALL -2 -2 OK -0
- 2% ALL 1i1 2 OK -1d2
- 2% ALL 3d1 2 OK 1d4
- 2% ALL 1 4 OK 1
- 2% ALL 2 4 OK 2
- 2% ALL 3 4 OK -1
- 2% ALL 4 4 OK 0
- 2% ALL 5 4 OK 1
- 2% ALL 6 4 OK -2
- 2% ALL 7 4 OK -1
- 2% ALL 8 4 OK 0
- 2% ALL 0 1m1 OK 0
- 2% ALL 1m3 1m1 OK 1m3
- 2% ALL 3m3 1m1 OK -1m3
- 2% ALL 5m3 1m1 OK 1m3
- ! Step across jump.
- 2% ALL 2i1 4 OK -2d2
- 2% ALL 2i1 -4 OK -2d2
- 2% ALL -2i1 4 OK 2d2
- 2% ALL -2i1 -4 OK 2d2
- 2% ALL 2i8 4 OK -2d8d8
- 2% ALL 6d1 4 OK 2d4
- 2% ALL 6d1 -4 OK 2d4
- 2% ALL -6d1 4 OK -2d4
- 2% ALL -6d1 -4 OK -2d4
- 2% ALL 6d8 4 OK 2d8d8d8d8
- 2% ALL 1m2 1m1 OK 1m2
- 2% ALL 1i1m2 1m1 OK -1d2m2
- ! (1+x)/(1+y), x,y<<1.
- 2% ALL 1i1 1i5 OK -1u4
- 2% ALL 1i1 -1i5 OK -1u4
- 2% ALL -1i1 1i5 OK 1u4
- 2% ALL -1i1 -1i5 OK 1u4
- 2% ALL 1i2 1i5 OK -1u3
- 2% ALL 1i3 1i5 OK -1u2
- 2% ALL 1i4 1i5 OK -1u1
- 2% ALL 1i6 1i5 OK 1u1
- 2% ALL 3d1 3 OK -3u1
- 2% ALL 3d1 -3 OK -3u1
- 2% ALL -3d1 3 OK 3u1
- 2% ALL -3d1 -3 OK 3u1
- 2% ALL 2d1 2 OK -1u1
- 2% ALL 1i1 1d2 OK 1u2
- 2% ALL 1 1d2 OK 1u1
- 2% ALL 1d4 1d2 OK -1u1
- 2% ALL 1d1 2d1 OK 1d1
- 2% ALL 1 2d1 OK -1d2
- ! Large numbers.
- 2% ALL Hm1i1 Hm1d2 OK Hm1u2
- 2% ALL Hm1 Hm1d2 OK Hm1u1
- 2% ALL Hm1d4 Hm1d2 OK -Hm1u1
- 2% ALL Hm1d1 Hd1 OK Hm1d1
- 2% ALL Hm1 Hd1 OK -Hm1d2
- 2% ALL Hm2 Hm1 OK Hm2
- 2% ALL Hd1 Hd2 OK Hd1u1
- 2% ALL Hd1 -Hd2 OK Hd1u1
- 2% ALL -Hd1 Hd2 OK -Hd1u1
- 2% ALL -Hd1 -Hd2 OK -Hd1u1
- 2% ALL Hm1u1 Hm1u4 OK Hm1u1
- 2% ALL Hd1 Hm1 OK -Hm1u1
- 2% ALL Hm1i3 Hm1i5 OK -Hm1u2
- 2% ALL Hm1i4 Hm1i5 OK -Hm1u1
- 2% ALL Hm1i6 Hm1i5 OK Hm1u1
- ! Large and small numbers.
- 2% ALL Hd1 0i1 OK 0
- 2% ALL Hd1 -0i1 OK 0
- 2% ALL -Hd1 0i1 OK -0
- 2% ALL -Hd1 -0i1 OK -0
- 2% ALL Hd1 Eu1 OK 0
- 2% ALL Hd1 Ep1d1 OK 0
- 2% ALL Hd1 E OK 0
- 2% ALL Hm1d1 Hm1 OK -Hm2u1
- 2% ALL Hm1d1 -Hm1 OK -Hm2u1
- 2% ALL -Hm1d1 Hm1 OK Hm2u1
- 2% ALL -Hm1d1 -Hm1 OK Hm2u1
- ! Small numbers.
- 2% ALL 0i1 0i4 OK 0i1
- 2% ALL 0i1 -0i4 OK 0i1
- 2% ALL -0i1 0i4 OK -0i1
- 2% ALL -0i1 -0i4 OK -0i1
- 2% ALL 0i2 0i4 OK 0i2
- 2% ALL 0i3 0i4 OK -0i1
- 2% ALL 0i3 -0i4 OK -0i1
- 2% ALL -0i3 0i4 OK 0i1
- 2% ALL -0i3 -0i4 OK 0i1
- 2% ALL 0i4 0i4 OK 0
- 2% ALL 0i4 -0i4 OK 0
- 2% ALL -0i4 -0i4 OK -0
- 2% ALL -0i4 0i4 OK -0
- 2% ALL Ep9d1 Ep8 OK -Ep8u1
- 2% ALL Ei1 Ed2 OK Eu3
- 2% ALL E Ed2 OK Eu2
- 2% ALL Ed4 Ed2 OK -Eu2
- 2% ALL Ed4 -Ed2 OK -Eu2
- 2% ALL -Ed4 Ed2 OK Eu2
- 2% ALL -Ed4 -Ed2 OK Eu2
- 2% ALL Ed1 Ep1d1 OK Ed1
- 2% ALL E Ep1d1 OK -Ed1
- 2% ALL Ei3 Ei5 OK -Eu2
- 2% ALL Ei4 Ei5 OK -Eu1
- 2% ALL Ei6 Ei5 OK Eu1
- 2% ALL Ep1d1 Ep1 OK -Eu1
- ! Special case: invalid operations
- ! delivering NaNs.
- 2% ALL 0 0 i Q
- 2% ALL 0 -0 i Q
- 2% ALL -0 0 i Q
- 2% ALL -0 -0 i Q
- 2% ALL 1 0 i Q
- 2% ALL 1d1 0 i Q
- 2% ALL Hd1 0 i Q
- 2% ALL Hd1 -0 i Q
- 2% ALL -Hd1 0 i Q
- 2% ALL -Hd1 -0 i Q
- 2% ALL Ed1 0 i Q
- 2% ALL Ed1 -0 i Q
- 2% ALL -Ed1 0 i Q
- 2% ALL -Ed1 -0 i Q
- 2% ALL 0i1 0 i Q
- 2% ALL H 0 i Q
- 2% ALL H -0 i Q
- 2% ALL -H 0 i Q
- 2% ALL -H -0 i Q
- 2% ALL H 1 i Q
- 2% ALL H Hd1 i Q
- 2% ALL H -Hd1 i Q
- 2% ALL -H Hd1 i Q
- 2% ALL -H -Hd1 i Q
- 2% ALL H Ed1 i Q
- 2% ALL H 0i1 i Q
- 2% ALL H H i Q
- ! 0 rem y = 0, y a number <> 0.
- 2% ALL 0 1 OK 0
- 2% ALL 0 -1 OK 0
- 2% ALL -0 1 OK -0
- 2% ALL -0 -1 OK -0
- 2% ALL 0 1d1 OK 0
- 2% ALL 0 Hd1 OK 0
- 2% ALL 0 Ed1 OK 0
- 2% ALL 0 0i1 OK 0
- 2% ALL 0 -0i1 OK 0
- 2% ALL -0 0i1 OK -0
- 2% ALL -0 -0i1 OK -0
- 2% ALL 0 H OK 0
- 2% ALL 0 -H OK 0
- ! x rem INF = x, x a number <> 0.
- 2% ALL 1 H OK 1
- 2% ALL 1 -H OK 1
- 2% ALL -1 H OK -1
- 2% ALL -1 -H OK -1
- 2% ALL 1d1 H OK 1d1
- 2% ALL Hd1 H OK Hd1
- 2% ALL Hd1 -H OK Hd1
- 2% ALL -Hd1 H OK -Hd1
- 2% ALL -Hd1 -H OK -Hd1
- 2% ALL Ed1 H OK Ed1
- 2% ALL 0i1 H OK 0i1
- 2% ALL 0i1 -H OK 0i1
- 2% ALL -0i1 H OK -0i1
- 2% ALL -0i1 -H OK -0i1
- ! Vectors based on
- ! (x + 1) | (x^n + 1) for n odd -
- ! for significands with even
- ! numbers of bits.
- 2% s Hm1i1 Hm1u3 OK 0
- 2% s Hm1i2 Hm1u3 OK Hm1u1
- 2% s Hm1i3 Hm1u3 OK -Hm1u1
- 2% s Hm1i1 3 OK 0
- 2% s Hm1i1 0i3 OK 0
- 2% s Hm1 Hm1u3 OK -Hm1u1
- 2% s Hm1d2 Hm1u3 OK Hm1u1
- 2% s Ei1 Eu3 OK 0
- 2% s E Eu3 OK -0i1
- 2% s Ed1 Eu3 OK 0i1
- 2% s Ei1 0i3 OK 0
- 2% s Ei2 Eu3 OK Eu1
- 2% s Ei3 Eu3 OK -Eu1
- 2% s Hm1i1 -Hm1u3 OK 0
- 2% s Hm1i2 -Hm1u3 OK Hm1u1
- 2% s Hm1i3 -Hm1u3 OK -Hm1u1
- 2% s Hm1i1 -3 OK 0
- 2% s Hm1i1 -0i3 OK 0
- 2% s Hm1 -Hm1u3 OK -Hm1u1
- 2% s Hm1d2 -Hm1u3 OK Hm1u1
- 2% s Ei1 -0i3 OK 0
- 2% s E -Eu3 OK -Eu1
- 2% s Ed1 -Eu3 OK Eu1
- 2% s Ei1 -Eu3 OK 0
- 2% s Ei2 -Eu3 OK Eu1
- 2% s Ei3 -Eu3 OK -Eu1
- 2% s -Hm1i1 Hm1u3 OK -0
- 2% s -Hm1i2 Hm1u3 OK -Hm1u1
- 2% s -Hm1i3 Hm1u3 OK Hm1u1
- 2% s -Hm1i1 3 OK -0
- 2% s -Hm1i1 0i3 OK -0
- 2% s -Hm1 Hm1u3 OK Hm1u1
- 2% s -Hm1d2 Hm1u3 OK -Hm1u1
- 2% s -Ei1 0i3 OK -0
- 2% s -E Eu3 OK Eu1
- 2% s -Ed1 Eu3 OK -Eu1
- 2% s -Ei1 Eu3 OK -0
- 2% s -Ei2 Eu3 OK -Eu1
- 2% s -Ei3 Eu3 OK Eu1
- 2% s -Hm1i1 -Hm1u3 OK -0
- 2% s -Hm1i2 -Hm1u3 OK -Hm1u1
- 2% s -Hm1i3 -Hm1u3 OK Hm1u1
- 2% s -Hm1i1 -3 OK -0
- 2% s -Hm1i1 -0i3 OK -0
- 2% s -Hm1 -Hm1u3 OK Hm1u1
- 2% s -Hm1d2 -Hm1u3 OK -Hm1u1
- 2% s -Ei1 -0i3 OK -0
- 2% s -E -Eu3 OK Eu1
- 2% s -Ed1 -Eu3 OK -Eu1
- 2% s -Ei1 -Eu3 OK -0
- 2% s -Ei2 -Eu3 OK -Eu1
- 2% s -Ei3 -Eu3 OK Eu1
- ! Vectors based on
- ! (x + 1) | (x^n + 1) for n odd;
- ! for significands with
- ! odd numbers of bits.
- 2% d Hm1d2 Hm1u3 OK 0
- 2% d Hm1i3 Hm1u3 OK Hm1u1
- 2% d Hm1i4 Hm1u3 OK -Hm1u1
- 2% d Hm1i2 3 OK 0
- 2% d Hm1i2 0i3 OK 0
- 2% d Hm1d4 Hm1u3 OK -Hm1u1
- 2% d Hm1 Hm1u3 OK Hm1u1
- 2% d Ed1 Eu3 OK 0
- 2% d Ei1 Eu3 OK -0i1
- 2% d E Eu3 OK 0i1
- 2% d Ei2 0i3 OK 0
- 2% d Ei3 Eu3 OK Eu1
- 2% d Ei4 Eu3 OK -Eu1
- 2% d Hm1d2 -Hm1u3 OK 0
- 2% d Hm1i3 -Hm1u3 OK Hm1u1
- 2% d Hm1i4 -Hm1u3 OK -Hm1u1
- 2% d Hm1i2 -3 OK 0
- 2% d Hm1i2 -0i3 OK 0
- 2% d Hm1d4 -Hm1u3 OK -Hm1u1
- 2% d Hm1 -Hm1u3 OK Hm1u1
- 2% d Ed1 -0i3 OK 0
- 2% d Ei1 -Eu3 OK -Eu1
- 2% d E -Eu3 OK Eu1
- 2% d Ei2 -Eu3 OK 0
- 2% d Ei3 -Eu3 OK Eu1
- 2% d Ei4 -Eu3 OK -Eu1
- 2% d -Hm1d2 Hm1u3 OK -0
- 2% d -Hm1i3 Hm1u3 OK -Hm1u1
- 2% d -Hm1i4 Hm1u3 OK Hm1u1
- 2% d -Hm1i2 3 OK -0
- 2% d -Hm1i2 0i3 OK -0
- 2% d -Hm1d4 Hm1u3 OK Hm1u1
- 2% d -Hm1 Hm1u3 OK -Hm1u1
- 2% d -Ed1 0i3 OK -0
- 2% d -Ei1 Eu3 OK Eu1
- 2% d -E Eu3 OK -Eu1
- 2% d -Ei2 Eu3 OK -0
- 2% d -Ei3 Eu3 OK -Eu1
- 2% d -Ei4 Eu3 OK Eu1
- 2% d -Hm1d2 -Hm1u3 OK -0
- 2% d -Hm1i3 -Hm1u3 OK -Hm1u1
- 2% d -Hm1i4 -Hm1u3 OK Hm1u1
- 2% d -Hm1i2 -3 OK -0
- 2% d -Hm1i2 -0i3 OK -0
- 2% d -Hm1d4 -Hm1u3 OK Hm1u1
- 2% d -Hm1 -Hm1u3 OK -Hm1u1
- 2% d -Ei2 -0i3 OK -0
- 2% d -Ei1 -Eu3 OK Eu1
- 2% d -E -Eu3 OK -Eu1
- 2% d -Ei2 -Eu3 OK -0
- 2% d -Ei3 -Eu3 OK -Eu1
- 2% d -Ei4 -Eu3 OK Eu1
- ! NaN operands.
- 2% ALL Q 0 OK Q
- 2% ALL Q -0 OK Q
- 2% ALL 0 Q OK Q
- 2% ALL -0 Q OK Q
- 2% ALL Q 1 OK Q
- 2% ALL Q -1 OK Q
- 2% ALL 1 Q OK Q
- 2% ALL -1 Q OK Q
- 2% ALL Ed1 Q OK Q
- 2% ALL -Ed1 Q OK Q
- 2% ALL Q Ed1 OK Q
- 2% ALL Q -Ed1 OK Q
- 2% ALL Q 0i1 OK Q
- 2% ALL Q -0i1 OK Q
- 2% ALL 0i1 Q OK Q
- 2% ALL -0i1 Q OK Q
- 2% ALL Q Hd1 OK Q
- 2% ALL Q -Hd1 OK Q
- 2% ALL Hd1 Q OK Q
- 2% ALL -Hd1 Q OK Q
- 2% ALL Q H OK Q
- 2% ALL Q -H OK Q
- 2% ALL H Q OK Q
- 2% ALL -H Q OK Q
- 2% ALL Q Q OK Q
- 2% ALL S 0 i Q
- 2% ALL S -0 i Q
- 2% ALL 0 S i Q
- 2% ALL -0 S i Q
- 2% ALL S 1 i Q
- 2% ALL S -1 i Q
- 2% ALL 1 S i Q
- 2% ALL -1 S i Q
- 2% ALL Ed1 S i Q
- 2% ALL -Ed1 S i Q
- 2% ALL S Ed1 i Q
- 2% ALL S -Ed1 i Q
- 2% ALL S 0i1 i Q
- 2% ALL S -0i1 i Q
- 2% ALL 0i1 S i Q
- 2% ALL -0i1 S i Q
- 2% ALL S Hd1 i Q
- 2% ALL S -Hd1 i Q
- 2% ALL Hd1 S i Q
- 2% ALL -Hd1 S i Q
- 2% ALL S H i Q
- 2% ALL S -H i Q
- 2% ALL H S i Q
- 2% ALL -H S i Q
- 2% ALL Q S i Q
- 2% ALL S Q i Q
- 2% ALL S S i Q